Split the Add, Sub, and Mul instruction opcodes into separate
authorDan Gohman <gohman@apple.com>
Thu, 4 Jun 2009 22:49:04 +0000 (22:49 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 4 Jun 2009 22:49:04 +0000 (22:49 +0000)
commitae3a0be92e33bc716722aa600983fc1535acb122
tree768333097a76cc105813c7c636daf6259e6a0fc7
parentd18e31ae17390d9c6f6cf93d18badf962452031d
Split the Add, Sub, and Mul instruction opcodes into separate
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.

For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.

This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
265 files changed:
docs/LangRef.html
include/llvm/Constants.h
include/llvm/InstrTypes.h
include/llvm/Instruction.def
include/llvm/Support/ConstantFolder.h
include/llvm/Support/IRBuilder.h
include/llvm/Support/NoFolder.h
include/llvm/Support/PatternMatch.h
include/llvm/Support/TargetFolder.h
lib/Analysis/ValueTracking.cpp
lib/AsmParser/LLLexer.cpp
lib/AsmParser/LLParser.cpp
lib/AsmParser/LLToken.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuild.h
lib/ExecutionEngine/ExecutionEngine.cpp
lib/ExecutionEngine/Interpreter/Execution.cpp
lib/ExecutionEngine/JIT/JITEmitter.cpp
lib/Target/CBackend/CBackend.cpp
lib/Target/CppBackend/CPPBackend.cpp
lib/Target/MSIL/MSILWriter.cpp
lib/Transforms/Scalar/GVN.cpp
lib/Transforms/Scalar/GVNPRE.cpp
lib/Transforms/Scalar/IndVarSimplify.cpp
lib/Transforms/Scalar/InstructionCombining.cpp
lib/Transforms/Scalar/LoopStrengthReduce.cpp
lib/Transforms/Scalar/SimplifyLibCalls.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
lib/VMCore/ConstantFold.cpp
lib/VMCore/Constants.cpp
lib/VMCore/Instruction.cpp
lib/VMCore/Instructions.cpp
test/Analysis/ScalarEvolution/sext-iv-0.ll
test/Analysis/ScalarEvolution/sext-iv-1.ll
test/Analysis/ScalarEvolution/trip-count4.ll
test/Assembler/2002-04-07-HexFloatConstants.ll
test/Assembler/2002-04-07-InfConstant.ll
test/CodeGen/ARM/2007-01-19-InfiniteLoop.ll
test/CodeGen/ARM/2009-02-27-SpillerBug.ll
test/CodeGen/ARM/2009-03-07-SpillerBug.ll
test/CodeGen/ARM/2009-04-08-FloatUndef.ll
test/CodeGen/ARM/cse-libcalls.ll
test/CodeGen/ARM/fixunsdfdi.ll
test/CodeGen/ARM/fnmul.ll
test/CodeGen/ARM/fparith.ll
test/CodeGen/ARM/fpmem.ll
test/CodeGen/ARM/illegal-vector-bitcast.ll
test/CodeGen/ARM/vfp.ll
test/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll
test/CodeGen/CBackend/2008-10-21-PPCLongDoubleConstant.ll
test/CodeGen/CBackend/vectors.ll
test/CodeGen/CellSPU/dp_farith.ll
test/CodeGen/CellSPU/fneg-fabs.ll
test/CodeGen/CellSPU/sp_farith.ll
test/CodeGen/Generic/2006-07-03-schedulers.ll
test/CodeGen/Generic/2007-05-15-InfiniteRecursion.ll
test/CodeGen/Generic/2008-02-04-ExtractSubvector.ll
test/CodeGen/Generic/2008-02-25-NegateZero.ll
test/CodeGen/Generic/2008-02-26-NegatableCrash.ll
test/CodeGen/Generic/fneg-fabs.ll
test/CodeGen/Generic/print-arith-fp.ll
test/CodeGen/Generic/select.ll
test/CodeGen/Generic/storetrunc-fp.ll
test/CodeGen/Generic/v-split.ll
test/CodeGen/Generic/vector.ll
test/CodeGen/MSP430/2009-05-19-DoubleSplit.ll
test/CodeGen/Mips/2008-07-06-fadd64.ll
test/CodeGen/Mips/2008-07-22-Cstpool.ll
test/CodeGen/Mips/2008-07-23-fpcmp.ll
test/CodeGen/Mips/2008-08-03-fabs64.ll
test/CodeGen/Mips/2008-11-10-xint_to_fp.ll
test/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll
test/CodeGen/PowerPC/2006-10-11-combiner-aa-regression.ll
test/CodeGen/PowerPC/2007-03-30-SpillerCrash.ll
test/CodeGen/PowerPC/2007-11-19-VectorSplitting.ll
test/CodeGen/PowerPC/2008-07-15-Fabs.ll
test/CodeGen/PowerPC/2008-07-17-Fneg.ll
test/CodeGen/PowerPC/2008-09-12-CoalescerBug.ll
test/CodeGen/PowerPC/2008-10-28-UnprocessedNode.ll
test/CodeGen/PowerPC/2008-10-28-f128-i32.ll
test/CodeGen/PowerPC/buildvec_canonicalize.ll
test/CodeGen/PowerPC/fma.ll
test/CodeGen/PowerPC/fnabs.ll
test/CodeGen/PowerPC/fneg.ll
test/CodeGen/PowerPC/int-fp-conv-1.ll
test/CodeGen/PowerPC/itofp128.ll
test/CodeGen/PowerPC/mem-rr-addr-mode.ll
test/CodeGen/PowerPC/multiple-return-values.ll
test/CodeGen/PowerPC/ppcf128-1-opt.ll
test/CodeGen/PowerPC/ppcf128-1.ll
test/CodeGen/PowerPC/ppcf128-2.ll
test/CodeGen/PowerPC/ppcf128-4.ll
test/CodeGen/PowerPC/return-val-i128.ll
test/CodeGen/PowerPC/unsafe-math.ll
test/CodeGen/PowerPC/vec_fneg.ll
test/CodeGen/PowerPC/vec_splat.ll
test/CodeGen/PowerPC/vec_zero.ll
test/CodeGen/PowerPC/vector.ll
test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll
test/CodeGen/X86/2005-05-08-FPStackifierPHI.ll
test/CodeGen/X86/2006-05-25-CycleInDAG.ll
test/CodeGen/X86/2007-01-08-InstrSched.ll
test/CodeGen/X86/2007-01-13-StackPtrIndex.ll
test/CodeGen/X86/2007-03-01-SpillerCrash.ll
test/CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll
test/CodeGen/X86/2007-04-24-VectorCrash.ll
test/CodeGen/X86/2007-06-29-VecFPConstantCSEBug.ll
test/CodeGen/X86/2007-07-10-StackerAssert.ll
test/CodeGen/X86/2007-09-18-ShuffleXformBug.ll
test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll
test/CodeGen/X86/2007-11-02-BadAsm.ll
test/CodeGen/X86/2007-11-06-InstrSched.ll
test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
test/CodeGen/X86/2007-12-11-FoldImpDefSpill.ll
test/CodeGen/X86/2008-01-16-FPStackifierAssert.ll
test/CodeGen/X86/2008-02-06-LoadFoldingBug.ll
test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll
test/CodeGen/X86/2008-02-27-DeadSlotElimBug.ll
test/CodeGen/X86/2008-02-27-PEICrash.ll
test/CodeGen/X86/2008-03-18-CoalescerBug.ll
test/CodeGen/X86/2008-03-25-TwoAddrPassBug.ll
test/CodeGen/X86/2008-07-19-movups-spills.ll
test/CodeGen/X86/2008-07-23-VSetCC.ll
test/CodeGen/X86/2008-08-23-X86-64AsmBug.ll
test/CodeGen/X86/2008-10-27-CoalescerBug.ll
test/CodeGen/X86/2008-11-03-F80VAARG.ll
test/CodeGen/X86/2008-12-05-SpillerCrash.ll
test/CodeGen/X86/2009-01-16-UIntToFP.ll
test/CodeGen/X86/2009-02-12-SpillerBug.ll
test/CodeGen/X86/2009-02-25-CommuteBug.ll
test/CodeGen/X86/2009-03-03-BitcastLongDouble.ll
test/CodeGen/X86/2009-03-09-SpillerBug.ll
test/CodeGen/X86/2009-03-12-CPAlignBug.ll
test/CodeGen/X86/break-anti-dependencies.ll
test/CodeGen/X86/coalescer-commute1.ll
test/CodeGen/X86/coalescer-commute2.ll
test/CodeGen/X86/coalescer-commute4.ll
test/CodeGen/X86/complex-fca.ll
test/CodeGen/X86/constant-pool-remat-0.ll
test/CodeGen/X86/extract-combine.ll
test/CodeGen/X86/fabs.ll
test/CodeGen/X86/fast-isel.ll
test/CodeGen/X86/fold-pcmpeqd-0.ll
test/CodeGen/X86/fold-pcmpeqd-2.ll
test/CodeGen/X86/fp-in-intregs.ll
test/CodeGen/X86/fp-stack-compare.ll
test/CodeGen/X86/fp_constant_op.ll
test/CodeGen/X86/fp_load_fold.ll
test/CodeGen/X86/fsxor-alignment.ll
test/CodeGen/X86/full-lsr.ll
test/CodeGen/X86/illegal-vector-args-return.ll
test/CodeGen/X86/inline-asm-fpstack.ll
test/CodeGen/X86/inline-asm-mrv.ll
test/CodeGen/X86/inline-asm-x-scalar.ll
test/CodeGen/X86/iv-users-in-other-loops.ll
test/CodeGen/X86/masked-iv-safe.ll
test/CodeGen/X86/masked-iv-unsafe.ll
test/CodeGen/X86/multiple-return-values.ll
test/CodeGen/X86/neg_fp.ll
test/CodeGen/X86/negate-add-zero.ll
test/CodeGen/X86/negative-sin.ll
test/CodeGen/X86/peep-test-0.ll
test/CodeGen/X86/peep-test-1.ll
test/CodeGen/X86/phys_subreg_coalesce.ll
test/CodeGen/X86/pr2656.ll
test/CodeGen/X86/pr3154.ll
test/CodeGen/X86/pr3457.ll
test/CodeGen/X86/pre-split1.ll
test/CodeGen/X86/pre-split10.ll
test/CodeGen/X86/pre-split4.ll
test/CodeGen/X86/pre-split5.ll
test/CodeGen/X86/pre-split6.ll
test/CodeGen/X86/pre-split7.ll
test/CodeGen/X86/pre-split8.ll
test/CodeGen/X86/pre-split9.ll
test/CodeGen/X86/shrink-fp-const1.ll
test/CodeGen/X86/small-byval-memcpy.ll
test/CodeGen/X86/soft-fp.ll
test/CodeGen/X86/sse-align-0.ll
test/CodeGen/X86/sse-align-2.ll
test/CodeGen/X86/sse-fcopysign.ll
test/CodeGen/X86/sse41-extractps-bitcast-1.ll
test/CodeGen/X86/stack-align.ll
test/CodeGen/X86/storetrunc-fp.ll
test/CodeGen/X86/stride-reuse.ll
test/CodeGen/X86/twoaddr-coalesce-2.ll
test/CodeGen/X86/vec_extract.ll
test/CodeGen/X86/vec_fneg.ll
test/CodeGen/X86/vec_ins_extract.ll
test/CodeGen/X86/vec_insert.ll
test/CodeGen/X86/vec_logical.ll
test/CodeGen/X86/vec_select.ll
test/CodeGen/X86/vec_shuffle-27.ll
test/CodeGen/X86/vec_shuffle-3.ll
test/CodeGen/X86/vec_shuffle-5.ll
test/CodeGen/X86/vec_splat.ll
test/CodeGen/X86/vec_ss_load_fold.ll
test/CodeGen/X86/vec_zero.ll
test/CodeGen/X86/vector.ll
test/CodeGen/X86/widen_arith-6.ll
test/CodeGen/X86/widen_shuffle-1.ll
test/CodeGen/X86/widen_shuffle-2.ll
test/CodeGen/XCore/2009-01-14-Remat-Crash.ll
test/CodeGen/XCore/fneg.ll
test/ExecutionEngine/2003-01-10-FUCOM.ll
test/ExecutionEngine/test-fp.ll
test/ExecutionEngine/test-setcond-fp.ll
test/Feature/ppcld.ll
test/Feature/sparcld.ll
test/Feature/x86ld.ll
test/Other/2004-08-16-PackedSelect.ll
test/Other/2004-08-16-PackedSimple.ll
test/Other/2004-08-20-PackedControlFlow.ll
test/Transforms/ConstProp/calls.ll
test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll
test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll
test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
test/Transforms/GlobalOpt/constantexpr-dangle.ll
test/Transforms/IndVarSimplify/2006-12-10-BitCast.ll
test/Transforms/IndVarSimplify/2008-11-03-Floating.ll
test/Transforms/IndVarSimplify/2008-11-17-Floating.ll
test/Transforms/IndVarSimplify/2008-11-25-APFloatAssert.ll
test/Transforms/IndVarSimplify/2009-04-27-Floating.ll
test/Transforms/IndVarSimplify/iv-zext.ll
test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
test/Transforms/InstCombine/2008-07-16-fsub.ll
test/Transforms/InstCombine/add-sitofp.ll
test/Transforms/InstCombine/dce-iterate.ll
test/Transforms/InstCombine/fpextend.ll
test/Transforms/InstCombine/mul.ll
test/Transforms/InstCombine/multi-use-or.ll
test/Transforms/InstCombine/shufflemask-undef.ll
test/Transforms/InstCombine/signed-comparison.ll
test/Transforms/InstCombine/sitofp.ll
test/Transforms/InstCombine/vec_demanded_elts.ll
test/Transforms/InstCombine/vec_narrow.ll
test/Transforms/InstCombine/zero-point-zero-add.ll
test/Transforms/LCSSA/2007-07-12-LICM-2.ll
test/Transforms/LCSSA/2007-07-12-LICM-3.ll
test/Transforms/LCSSA/2007-07-12-LICM.ll
test/Transforms/LoopIndexSplit/2007-09-24-UpdateIterationSpace.ll
test/Transforms/LoopIndexSplit/2007-09-25-UpdateIterationSpace-2.ll
test/Transforms/Mem2Reg/PromoteMemToRegister.ll
test/Transforms/MemCpyOpt/memcpy.ll
test/Transforms/MemCpyOpt/sret.ll
test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
test/Transforms/Reassociate/2006-04-27-ReassociateVector.ll
test/Transforms/SCCP/2006-12-04-PackedType.ll
test/Transforms/SCCP/apint-ipsccp4.ll
test/Transforms/ScalarRepl/2009-03-17-CleanUp.ll
test/Transforms/ScalarRepl/copy-aggregate.ll
test/Transforms/ScalarRepl/memcpy-from-global.ll
test/Transforms/ScalarRepl/vector_promote.ll
test/Transforms/SimplifyCFG/2006-10-29-InvokeCrash.ll
test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
test/Transforms/SimplifyCFG/2008-04-27-MultipleReturnCrash.ll
test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
test/Transforms/SimplifyLibCalls/half-powr.ll
utils/llvm.grm
utils/vim/llvm.vim