Remove conversion of fp-to-uint cast into a multi-step cast:
authorVikram S. Adve <vadve@cs.uiuc.edu>
Wed, 6 Aug 2003 18:42:49 +0000 (18:42 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Wed, 6 Aug 2003 18:42:49 +0000 (18:42 +0000)
this is not an optional transformation on SPARC and is now handled
directly by instruction selection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7644 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9PreSelection.cpp

index 13f5f6e85439500d851bbc0e4023b4ccb2328e12..8895613d32ed30940694d9548671ca33426b2636 100644 (file)
@@ -144,7 +144,6 @@ namespace {
     // These methods do the actual work of specializing code
     void visitInstruction(Instruction &I);   // common work for every instr. 
     void visitGetElementPtrInst(GetElementPtrInst &I);
-    void visitCastInst(CastInst &I);
     void visitCallInst(CallInst &I);
 
     // Helper functions for visiting operands of every instruction
@@ -341,34 +340,6 @@ PreSelection::visitGetElementPtrInst(GetElementPtrInst &I)
 }
 
 
-// Cast instructions:
-// -- make multi-step casts explicit:
-//    -- float/double to uint32_t:
-//         If target does not have a float-to-unsigned instruction, we
-//         need to convert to uint64_t and then to uint32_t, or we may
-//         overflow the signed int representation for legal uint32_t
-//         values.  Expand this without checking target.
-// -- other common transformations on operands
-// 
-void
-PreSelection::visitCastInst(CastInst &I)
-{ 
-  CastInst* castI = NULL;
-
-  // Check for a global and put its address into a register before this instr
-  if (I.getType() == Type::UIntTy &&
-      I.getOperand(0)->getType()->isFloatingPoint()) {
-    // insert a cast-fp-to-long before I, and then replace the operand of I
-    castI = new CastInst(I.getOperand(0), Type::LongTy, "fp2Long2Uint", &I);
-    I.setOperand(0, castI);           // replace fp operand with long
-  }
-
-  // Perform other transformations common to all instructions
-  visitInstruction(I);
-  if (castI)
-    visitInstruction(*castI);
-}
-
 void
 PreSelection::visitCallInst(CallInst &I)
 {