diff options
Diffstat (limited to 'include/llvm/Support/TargetFolder.h')
| -rw-r--r-- | include/llvm/Support/TargetFolder.h | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/include/llvm/Support/TargetFolder.h b/include/llvm/Support/TargetFolder.h index 8e28632b7eb82..46ad9b601f778 100644 --- a/include/llvm/Support/TargetFolder.h +++ b/include/llvm/Support/TargetFolder.h @@ -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  | 
