X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FVMCore%2FConstantFold.h;h=e01fa77084015e3fa212aa6e0f248116f3f6533c;hb=453eed147ad009f4608197928a3ed8ea7e67a78d;hp=e8580c429051a5c94cfd0910852bdec44afb873d;hpb=bb90a7aa7bf71311046ccc9f277e5f76cc082722;p=oota-llvm.git diff --git a/lib/VMCore/ConstantFold.h b/lib/VMCore/ConstantFold.h index e8580c42905..e01fa770840 100644 --- a/lib/VMCore/ConstantFold.h +++ b/lib/VMCore/ConstantFold.h @@ -19,24 +19,35 @@ #ifndef CONSTANTFOLDING_H #define CONSTANTFOLDING_H -#include - namespace llvm { class Value; class Constant; class Type; // Constant fold various types of instruction... - Constant *ConstantFoldCastInstruction(const Constant *V, const Type *DestTy); + Constant *ConstantFoldCastInstruction( + unsigned opcode, ///< The opcode of the cast + const Constant *V, ///< The source constant + const Type *DestTy ///< The destination type + ); Constant *ConstantFoldSelectInstruction(const Constant *Cond, const Constant *V1, const Constant *V2); Constant *ConstantFoldExtractElementInstruction(const Constant *Val, const Constant *Idx); + Constant *ConstantFoldInsertElementInstruction(const Constant *Val, + const Constant *Elt, + const Constant *Idx); + Constant *ConstantFoldShuffleVectorInstruction(const Constant *V1, + const Constant *V2, + const Constant *Mask); Constant *ConstantFoldBinaryInstruction(unsigned Opcode, const Constant *V1, const Constant *V2); + Constant *ConstantFoldCompareInstruction(unsigned short predicate, + const Constant *C1, + const Constant *C2); Constant *ConstantFoldGetElementPtr(const Constant *C, - const std::vector &IdxList); + Constant* const *Idxs, unsigned NumIdx); } // End llvm namespace #endif