[llvm-commits] CVS: llvm/lib/CodeGen/PreOpts/PreSelection.cpp

Vikram Adve vadve at cs.uiuc.edu
Wed Aug 6 13:44:01 PDT 2003


Changes in directory llvm/lib/CodeGen/PreOpts:

PreSelection.cpp updated: 1.14 -> 1.15

---
Log message:

Remove conversion of fp-to-uint cast into a multi-step cast:
this is not an optional transformation on SPARC and is now handled
directly by instruction selection.


---
Diffs of the changes:

Index: llvm/lib/CodeGen/PreOpts/PreSelection.cpp
diff -u llvm/lib/CodeGen/PreOpts/PreSelection.cpp:1.14 llvm/lib/CodeGen/PreOpts/PreSelection.cpp:1.15
--- llvm/lib/CodeGen/PreOpts/PreSelection.cpp:1.14	Tue Jul  1 20:23:15 2003
+++ llvm/lib/CodeGen/PreOpts/PreSelection.cpp	Wed Aug  6 13:42:49 2003
@@ -144,7 +144,6 @@
     // 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
@@ -340,34 +339,6 @@
   visitInstruction(*curI);
 }
 
-
-// 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)





More information about the llvm-commits mailing list