[ConstantFolding] Remove an unused ConstantFoldInstOperands overload

No functional change is intended.

llvm-svn: 277101
This commit is contained in:
David Majnemer 2016-07-29 03:27:33 +00:00
parent 57b94c8d6a
commit a926b3e71b
2 changed files with 5 additions and 27 deletions

View File

@ -63,19 +63,6 @@ Constant *ConstantFoldInstOperands(Instruction *I, ArrayRef<Constant *> Ops,
const DataLayout &DL, const DataLayout &DL,
const TargetLibraryInfo *TLI = nullptr); const TargetLibraryInfo *TLI = nullptr);
/// ConstantFoldInstOperands - Attempt to constant fold an instruction with the
/// specified operands. If successful, the constant result is returned, if not,
/// null is returned. Note that this function can fail when attempting to
/// fold instructions like loads and stores, which have no constant expression
/// form.
///
/// This function doesn't work for compares (use ConstantFoldCompareInstOperands
/// for this) and GEPs.
Constant *ConstantFoldInstOperands(unsigned Opcode, Type *DestTy,
ArrayRef<Constant *> Ops,
const DataLayout &DL,
const TargetLibraryInfo *TLI = nullptr);
/// ConstantFoldCompareInstOperands - Attempt to constant fold a compare /// ConstantFoldCompareInstOperands - Attempt to constant fold a compare
/// instruction (icmp/fcmp) with the specified operands. If it fails, it /// instruction (icmp/fcmp) with the specified operands. If it fails, it
/// returns a constant expression of the specified operands. /// returns a constant expression of the specified operands.

View File

@ -918,11 +918,12 @@ Constant *SymbolicallyEvaluateGEP(const GEPOperator *GEP,
/// information, due to only being passed an opcode and operands. Constant /// information, due to only being passed an opcode and operands. Constant
/// folding using this function strips this information. /// folding using this function strips this information.
/// ///
Constant *ConstantFoldInstOperandsImpl(const Value *InstOrCE, Type *DestTy, Constant *ConstantFoldInstOperandsImpl(const Value *InstOrCE, unsigned Opcode,
unsigned Opcode,
ArrayRef<Constant *> Ops, ArrayRef<Constant *> Ops,
const DataLayout &DL, const DataLayout &DL,
const TargetLibraryInfo *TLI) { const TargetLibraryInfo *TLI) {
Type *DestTy = InstOrCE->getType();
// Handle easy binops first. // Handle easy binops first.
if (Instruction::isBinaryOp(Opcode)) if (Instruction::isBinaryOp(Opcode))
return ConstantFoldBinaryOpOperands(Opcode, Ops[0], Ops[1], DL); return ConstantFoldBinaryOpOperands(Opcode, Ops[0], Ops[1], DL);
@ -1003,8 +1004,7 @@ ConstantFoldConstantImpl(const Constant *C, const DataLayout &DL,
return ConstantFoldCompareInstOperands(CE->getPredicate(), Ops[0], Ops[1], return ConstantFoldCompareInstOperands(CE->getPredicate(), Ops[0], Ops[1],
DL, TLI); DL, TLI);
return ConstantFoldInstOperandsImpl(CE, CE->getType(), CE->getOpcode(), Ops, return ConstantFoldInstOperandsImpl(CE, CE->getOpcode(), Ops, DL, TLI);
DL, TLI);
} }
assert(isa<ConstantVector>(C)); assert(isa<ConstantVector>(C));
@ -1094,16 +1094,7 @@ Constant *llvm::ConstantFoldInstOperands(Instruction *I,
ArrayRef<Constant *> Ops, ArrayRef<Constant *> Ops,
const DataLayout &DL, const DataLayout &DL,
const TargetLibraryInfo *TLI) { const TargetLibraryInfo *TLI) {
return ConstantFoldInstOperandsImpl(I, I->getType(), I->getOpcode(), Ops, DL, return ConstantFoldInstOperandsImpl(I, I->getOpcode(), Ops, DL, TLI);
TLI);
}
Constant *llvm::ConstantFoldInstOperands(unsigned Opcode, Type *DestTy,
ArrayRef<Constant *> Ops,
const DataLayout &DL,
const TargetLibraryInfo *TLI) {
assert(Opcode != Instruction::GetElementPtr && "Invalid for GEPs");
return ConstantFoldInstOperandsImpl(nullptr, DestTy, Opcode, Ops, DL, TLI);
} }
Constant *llvm::ConstantFoldCompareInstOperands(unsigned Predicate, Constant *llvm::ConstantFoldCompareInstOperands(unsigned Predicate,