X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FVMCore%2FConstantFold.h;h=e12f27a7cb1ead40b9e0805e7b638937f52dd2c2;hb=4903c15b7d92802a4f0f28928a89bb4c0d5e212f;hp=afa997876721329ec348f3316b374520ccf13f56;hpb=0a5372ed3e8cda10d724feda3c1a1c998db05ca0;p=oota-llvm.git diff --git a/lib/VMCore/ConstantFold.h b/lib/VMCore/ConstantFold.h index afa99787672..e12f27a7cb1 100644 --- a/lib/VMCore/ConstantFold.h +++ b/lib/VMCore/ConstantFold.h @@ -19,52 +19,38 @@ #ifndef CONSTANTFOLDING_H #define CONSTANTFOLDING_H +#include "llvm/ADT/ArrayRef.h" + namespace llvm { class Value; class Constant; class Type; - class LLVMContext; // Constant fold various types of instruction... Constant *ConstantFoldCastInstruction( - LLVMContext &Context, unsigned opcode, ///< The opcode of the cast - const Constant *V, ///< The source constant - const Type *DestTy ///< The destination type + Constant *V, ///< The source constant + Type *DestTy ///< The destination type ); - Constant *ConstantFoldSelectInstruction(LLVMContext &Context, - const Constant *Cond, - const Constant *V1, - const Constant *V2); - Constant *ConstantFoldExtractElementInstruction(LLVMContext &Context, - const Constant *Val, - const Constant *Idx); - Constant *ConstantFoldInsertElementInstruction(LLVMContext &Context, - const Constant *Val, - const Constant *Elt, - const Constant *Idx); - Constant *ConstantFoldShuffleVectorInstruction(LLVMContext &Context, - const Constant *V1, - const Constant *V2, - const Constant *Mask); - Constant *ConstantFoldExtractValueInstruction(LLVMContext &Context, - const Constant *Agg, - const unsigned *Idxs, - unsigned NumIdx); - Constant *ConstantFoldInsertValueInstruction(LLVMContext &Context, - const Constant *Agg, - const Constant *Val, - const unsigned* Idxs, - unsigned NumIdx); - Constant *ConstantFoldBinaryInstruction(LLVMContext &Context, - unsigned Opcode, const Constant *V1, - const Constant *V2); - Constant *ConstantFoldCompareInstruction(LLVMContext &Context, - unsigned short predicate, - const Constant *C1, - const Constant *C2); - Constant *ConstantFoldGetElementPtr(LLVMContext &Context, const Constant *C, - Constant* const *Idxs, unsigned NumIdx); + Constant *ConstantFoldSelectInstruction(Constant *Cond, + Constant *V1, Constant *V2); + Constant *ConstantFoldExtractElementInstruction(Constant *Val, Constant *Idx); + Constant *ConstantFoldInsertElementInstruction(Constant *Val, Constant *Elt, + Constant *Idx); + Constant *ConstantFoldShuffleVectorInstruction(Constant *V1, Constant *V2, + Constant *Mask); + Constant *ConstantFoldExtractValueInstruction(Constant *Agg, + ArrayRef Idxs); + Constant *ConstantFoldInsertValueInstruction(Constant *Agg, Constant *Val, + ArrayRef Idxs); + Constant *ConstantFoldBinaryInstruction(unsigned Opcode, Constant *V1, + Constant *V2); + Constant *ConstantFoldCompareInstruction(unsigned short predicate, + Constant *C1, Constant *C2); + Constant *ConstantFoldGetElementPtr(Constant *C, bool inBounds, + ArrayRef Idxs); + Constant *ConstantFoldGetElementPtr(Constant *C, bool inBounds, + ArrayRef Idxs); } // End llvm namespace #endif