For PR950: Provide an isCompare method for detection of ICmp and FCmp constant expressions. Change interfaces to allow for ICmp and FCmp predicate values.

llvm-svn: 32167
This commit is contained in:
Reid Spencer 2006-12-04 05:19:02 +00:00
parent 14fbdd5523
commit 963e5b0867
1 changed files with 6 additions and 2 deletions

View File

@ -498,7 +498,7 @@ protected:
// These private methods are used by the type resolution code to create
// ConstantExprs in intermediate forms.
static Constant *getTy(const Type *Ty, unsigned Opcode,
Constant *C1, Constant *C2);
Constant *C1, Constant *C2, unsigned short pred = 0);
static Constant *getShiftTy(const Type *Ty,
unsigned Opcode, Constant *C1, Constant *C2);
static Constant *getSelectTy(const Type *Ty,
@ -554,6 +554,9 @@ public:
/// @brief Return true if this is a convert constant expression
bool isCast() const;
/// @brief Return true if this is a compare constant expression
bool isCompare() const;
/// Select constant expr
///
static Constant *getSelect(Constant *C, Constant *V1, Constant *V2) {
@ -572,7 +575,8 @@ public:
/// ConstantExpr::get - Return a binary or shift operator constant expression,
/// folding if possible.
///
static Constant *get(unsigned Opcode, Constant *C1, Constant *C2);
static Constant *get(unsigned Opcode, Constant *C1, Constant *C2,
unsigned short pred = 0);
/// ConstantExpr::get* - Return some common constants without having to
/// specify the full Instruction::OPCODE identifier.