OSDN Git Service

Add CreateZExtOrBitCast and CreateSExtOrBitCast to TargetFolder
authorDan Gohman <gohman@apple.com>
Mon, 26 Oct 2009 18:36:40 +0000 (18:36 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 26 Oct 2009 18:36:40 +0000 (18:36 +0000)
for consistency with ConstantFolder.

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

include/llvm/Support/TargetFolder.h

index 8e28632..46ad9b6 100644 (file)
@@ -179,6 +179,16 @@ public:
   Constant *CreatePtrToInt(Constant *C, const Type *DestTy) const {
     return CreateCast(Instruction::PtrToInt, C, DestTy);
   }
+  Constant *CreateZExtOrBitCast(Constant *C, const Type *DestTy) const {
+    if (C->getType() == DestTy)
+      return C; // avoid calling Fold
+    return Fold(ConstantExpr::getZExtOrBitCast(C, DestTy));
+  }
+  Constant *CreateSExtOrBitCast(Constant *C, const Type *DestTy) const {
+    if (C->getType() == DestTy)
+      return C; // avoid calling Fold
+    return Fold(ConstantExpr::getSExtOrBitCast(C, DestTy));
+  }
   Constant *CreateTruncOrBitCast(Constant *C, const Type *DestTy) const {
     if (C->getType() == DestTy)
       return C; // avoid calling Fold