diff options
| author | Dan Gohman <gohman@apple.com> | 2010-05-03 22:44:19 +0000 | 
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2010-05-03 22:44:19 +0000 | 
| commit | 1eaac532615a54a1133367dc2c4ceaa79a150a9d (patch) | |
| tree | b577867241291af40389de7cbf82719be1eaed46 /lib/VMCore | |
| parent | b98c549d135c8f38b2fc1b086cc46f0b243ce862 (diff) | |
| download | external_llvm-1eaac532615a54a1133367dc2c4ceaa79a150a9d.zip external_llvm-1eaac532615a54a1133367dc2c4ceaa79a150a9d.tar.gz external_llvm-1eaac532615a54a1133367dc2c4ceaa79a150a9d.tar.bz2 | |
Remove the API compatibility layer which converted add, sub, and mul
to fadd, fsub, and fmul, when used with a floating-point type. LLVM
has supported the new instructions since 2.6, so it's time to get
on board.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102971 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
| -rw-r--r-- | lib/VMCore/Constants.cpp | 9 | ||||
| -rw-r--r-- | lib/VMCore/Instructions.cpp | 22 | 
2 files changed, 4 insertions, 27 deletions
| diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index d969dbb..00b0094 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -1450,12 +1450,6 @@ Constant *ConstantExpr::getCompareTy(unsigned short predicate,  Constant *ConstantExpr::get(unsigned Opcode, Constant *C1, Constant *C2,                              unsigned Flags) { -  // API compatibility: Adjust integer opcodes to floating-point opcodes. -  if (C1->getType()->isFPOrFPVectorTy()) { -    if (Opcode == Instruction::Add) Opcode = Instruction::FAdd; -    else if (Opcode == Instruction::Sub) Opcode = Instruction::FSub; -    else if (Opcode == Instruction::Mul) Opcode = Instruction::FMul; -  }  #ifndef NDEBUG    switch (Opcode) {    case Instruction::Add: @@ -1840,9 +1834,6 @@ Constant *ConstantExpr::getExtractValue(Constant *Agg,  }  Constant* ConstantExpr::getNeg(Constant* C) { -  // API compatibility: Adjust integer opcodes to floating-point opcodes. -  if (C->getType()->isFPOrFPVectorTy()) -    return getFNeg(C);    assert(C->getType()->isIntOrIntVectorTy() &&           "Cannot NEG a nonintegral value!");    return get(Instruction::Sub, diff --git a/lib/VMCore/Instructions.cpp b/lib/VMCore/Instructions.cpp index d5c89c9..f64b220 100644 --- a/lib/VMCore/Instructions.cpp +++ b/lib/VMCore/Instructions.cpp @@ -1562,43 +1562,29 @@ const Type* ExtractValueInst::getIndexedType(const Type *Agg,  //                             BinaryOperator Class  //===----------------------------------------------------------------------===// -/// AdjustIType - Map Add, Sub, and Mul to FAdd, FSub, and FMul when the -/// type is floating-point, to help provide compatibility with an older API. -/// -static BinaryOperator::BinaryOps AdjustIType(BinaryOperator::BinaryOps iType, -                                             const Type *Ty) { -  // API compatibility: Adjust integer opcodes to floating-point opcodes. -  if (Ty->isFPOrFPVectorTy()) { -    if (iType == BinaryOperator::Add) iType = BinaryOperator::FAdd; -    else if (iType == BinaryOperator::Sub) iType = BinaryOperator::FSub; -    else if (iType == BinaryOperator::Mul) iType = BinaryOperator::FMul; -  } -  return iType; -} -  BinaryOperator::BinaryOperator(BinaryOps iType, Value *S1, Value *S2,                                 const Type *Ty, const Twine &Name,                                 Instruction *InsertBefore) -  : Instruction(Ty, AdjustIType(iType, Ty), +  : Instruction(Ty, iType,                  OperandTraits<BinaryOperator>::op_begin(this),                  OperandTraits<BinaryOperator>::operands(this),                  InsertBefore) {    Op<0>() = S1;    Op<1>() = S2; -  init(AdjustIType(iType, Ty)); +  init(iType);    setName(Name);  }  BinaryOperator::BinaryOperator(BinaryOps iType, Value *S1, Value *S2,                                  const Type *Ty, const Twine &Name,                                 BasicBlock *InsertAtEnd) -  : Instruction(Ty, AdjustIType(iType, Ty), +  : Instruction(Ty, iType,                  OperandTraits<BinaryOperator>::op_begin(this),                  OperandTraits<BinaryOperator>::operands(this),                  InsertAtEnd) {    Op<0>() = S1;    Op<1>() = S2; -  init(AdjustIType(iType, Ty)); +  init(iType);    setName(Name);  } | 
