From 0a5372ed3e8cda10d724feda3c1a1c998db05ca0 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Mon, 13 Jul 2009 04:09:18 +0000 Subject: Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75445 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/ConstantFold.h | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'lib/VMCore/ConstantFold.h') diff --git a/lib/VMCore/ConstantFold.h b/lib/VMCore/ConstantFold.h index 49aea11..afa9978 100644 --- a/lib/VMCore/ConstantFold.h +++ b/lib/VMCore/ConstantFold.h @@ -23,37 +23,47 @@ 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 *ConstantFoldSelectInstruction(const Constant *Cond, + Constant *ConstantFoldSelectInstruction(LLVMContext &Context, + const Constant *Cond, const Constant *V1, const Constant *V2); - Constant *ConstantFoldExtractElementInstruction(const Constant *Val, + Constant *ConstantFoldExtractElementInstruction(LLVMContext &Context, + const Constant *Val, const Constant *Idx); - Constant *ConstantFoldInsertElementInstruction(const Constant *Val, + Constant *ConstantFoldInsertElementInstruction(LLVMContext &Context, + const Constant *Val, const Constant *Elt, const Constant *Idx); - Constant *ConstantFoldShuffleVectorInstruction(const Constant *V1, + Constant *ConstantFoldShuffleVectorInstruction(LLVMContext &Context, + const Constant *V1, const Constant *V2, const Constant *Mask); - Constant *ConstantFoldExtractValueInstruction(const Constant *Agg, + Constant *ConstantFoldExtractValueInstruction(LLVMContext &Context, + const Constant *Agg, const unsigned *Idxs, unsigned NumIdx); - Constant *ConstantFoldInsertValueInstruction(const Constant *Agg, + Constant *ConstantFoldInsertValueInstruction(LLVMContext &Context, + const Constant *Agg, const Constant *Val, const unsigned* Idxs, unsigned NumIdx); - Constant *ConstantFoldBinaryInstruction(unsigned Opcode, const Constant *V1, + Constant *ConstantFoldBinaryInstruction(LLVMContext &Context, + unsigned Opcode, const Constant *V1, const Constant *V2); - Constant *ConstantFoldCompareInstruction(unsigned short predicate, + Constant *ConstantFoldCompareInstruction(LLVMContext &Context, + unsigned short predicate, const Constant *C1, const Constant *C2); - Constant *ConstantFoldGetElementPtr(const Constant *C, + Constant *ConstantFoldGetElementPtr(LLVMContext &Context, const Constant *C, Constant* const *Idxs, unsigned NumIdx); } // End llvm namespace -- cgit v1.1