Move some constant folding functions into LLVMAnalysis since they are used

by Analysis and Transformation passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24038 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
John Criswell
2005-10-27 16:00:10 +00:00
parent a115643357
commit bd9d37026a
3 changed files with 209 additions and 8 deletions

View File

@@ -16,6 +16,7 @@
#define LLVM_TRANSFORMS_UTILS_LOCAL_H
#include "llvm/Function.h"
#include "llvm/Analysis/ConstantFolding.h"
namespace llvm {
@@ -48,14 +49,6 @@ bool ConstantFoldTerminator(BasicBlock *BB);
Constant *ConstantFoldInstruction(Instruction *I);
/// canConstantFoldCallTo - Return true if its even possible to fold a call to
/// the specified function.
bool canConstantFoldCallTo(Function *F);
/// ConstantFoldCall - Attempt to constant fold a call to the specified function
/// with the specified arguments, returning null if unsuccessful.
Constant *ConstantFoldCall(Function *F, const std::vector<Constant*> &Operands);
/// ConstantFoldLoadThroughGEPConstantExpr - Given a constant and a
/// getelementptr constantexpr, return the constant value being addressed by the
/// constant expression, or null if something is funny and we can't decide.