From 4a142eb28942073eb27a112b5ca1cca3f01beb9c Mon Sep 17 00:00:00 2001
From: Roman Divacky
Date: Fri, 23 Oct 2009 14:19:52 +0000
Subject: Update LLVM to r84949.
---
Makefile | 12 +
Makefile.rules | 4 +-
cmake/modules/LLVMLibDeps.cmake | 2 +-
docs/CMake.html | 4 +-
docs/CommandGuide/FileCheck.pod | 186 +-
docs/CommandGuide/index.html | 4 +-
docs/GettingStarted.html | 3 +-
docs/LangRef.html | 18 +-
docs/ProgrammersManual.html | 20 +-
docs/ReleaseNotes.html | 6 +-
examples/BrainF/BrainF.cpp | 7 +-
include/llvm-c/Core.h | 1 -
include/llvm/ADT/APFloat.h | 3 +
include/llvm/ADT/DenseMapInfo.h | 4 +-
include/llvm/ADT/FoldingSet.h | 1 -
include/llvm/ADT/StringExtras.h | 21 +-
include/llvm/ADT/StringRef.h | 52 +-
include/llvm/ADT/Triple.h | 3 +-
include/llvm/ADT/ValueMap.h | 365 +
include/llvm/Analysis/CFGPrinter.h | 61 +
include/llvm/Analysis/CallGraph.h | 3 +-
include/llvm/Analysis/ConstantFolding.h | 4 +
include/llvm/Analysis/DomPrinter.h | 30 +
include/llvm/Analysis/Dominators.h | 27 +-
include/llvm/Analysis/MallocHelper.h | 17 +-
include/llvm/Analysis/PostDominators.h | 15 +
include/llvm/CodeGen/MachineFrameInfo.h | 30 +-
include/llvm/CodeGen/MachineFunction.h | 3 +
include/llvm/CodeGen/MachineLoopInfo.h | 11 +
include/llvm/CodeGen/MachineModuleInfo.h | 3 +-
include/llvm/CodeGen/Passes.h | 7 +-
include/llvm/CodeGen/PseudoSourceValue.h | 4 +
include/llvm/CompilerDriver/Common.td | 12 +-
include/llvm/CompilerDriver/Plugin.h | 16 +-
include/llvm/Config/AsmParsers.def | 29 +
include/llvm/Config/AsmPrinters.def | 29 +
include/llvm/Config/Targets.def | 28 +
include/llvm/Config/config.h | 612 ++
include/llvm/Constants.h | 3 +-
include/llvm/ExecutionEngine/JITEventListener.h | 3 +-
include/llvm/ExecutionEngine/JITMemoryManager.h | 14 +-
include/llvm/InlineAsm.h | 8 +-
include/llvm/InstrTypes.h | 3 +-
include/llvm/Instruction.def | 73 +-
include/llvm/Instructions.h | 75 +-
include/llvm/Intrinsics.td | 1 -
include/llvm/LLVMContext.h | 1 -
include/llvm/LinkAllPasses.h | 10 +-
include/llvm/MC/MCAssembler.h | 28 +-
include/llvm/MC/MCContext.h | 27 +-
include/llvm/MC/MCExpr.h | 8 +-
include/llvm/MC/MCSymbol.h | 31 +-
include/llvm/Metadata.h | 200 +-
include/llvm/PassAnalysisSupport.h | 3 +-
include/llvm/PassSupport.h | 2 +-
include/llvm/Support/DataTypes.h | 148 +
include/llvm/Support/IRBuilder.h | 6 +-
include/llvm/Support/InstVisitor.h | 13 +-
include/llvm/Support/ValueHandle.h | 27 +-
include/llvm/Support/raw_ostream.h | 4 +
include/llvm/Support/type_traits.h | 9 +
include/llvm/Target/TargetIntrinsicInfo.h | 34 +-
include/llvm/Target/TargetMachine.h | 7 +-
include/llvm/Target/TargetRegisterInfo.h | 15 +-
include/llvm/Target/TargetRegistry.h | 11 +-
include/llvm/Target/TargetSubtarget.h | 17 +-
include/llvm/Transforms/IPO.h | 4 -
include/llvm/Transforms/Scalar.h | 5 +-
include/llvm/Transforms/Utils/SSAUpdater.h | 20 +-
include/llvm/Value.h | 4 +-
lib/Analysis/BasicAliasAnalysis.cpp | 24 +-
lib/Analysis/CFGPrinter.cpp | 63 +-
lib/Analysis/CMakeLists.txt | 1 +
lib/Analysis/ConstantFolding.cpp | 273 +-
lib/Analysis/DomPrinter.cpp | 265 +
lib/Analysis/IPA/GlobalsModRef.cpp | 5 +-
lib/Analysis/InlineCost.cpp | 2 +-
lib/Analysis/InstCount.cpp | 4 +-
lib/Analysis/LoopInfo.cpp | 5 +-
lib/Analysis/MallocHelper.cpp | 53 +-
lib/Analysis/PointerTracking.cpp | 5 +-
lib/Analysis/ValueTracking.cpp | 21 +-
lib/AsmParser/LLLexer.cpp | 7 +-
lib/AsmParser/LLParser.cpp | 71 +-
lib/AsmParser/LLParser.h | 7 +-
lib/AsmParser/LLToken.h | 3 +-
lib/Bitcode/Reader/BitcodeReader.cpp | 22 +-
lib/Bitcode/Writer/BitcodeWriter.cpp | 47 +-
lib/Bitcode/Writer/ValueEnumerator.cpp | 20 +-
lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 14 +-
lib/CodeGen/AsmPrinter/DwarfException.cpp | 30 +-
lib/CodeGen/BranchFolding.cpp | 10 +-
lib/CodeGen/CodePlacementOpt.cpp | 525 +-
lib/CodeGen/ExactHazardRecognizer.cpp | 3 +-
lib/CodeGen/LLVMTargetMachine.cpp | 2 +-
lib/CodeGen/LiveIntervalAnalysis.cpp | 27 +-
lib/CodeGen/MachineInstr.cpp | 4 +-
lib/CodeGen/MachineLoopInfo.cpp | 28 +
lib/CodeGen/MachineSink.cpp | 19 +-
lib/CodeGen/PostRASchedulerList.cpp | 35 +-
lib/CodeGen/PreAllocSplitting.cpp | 2 +-
lib/CodeGen/PrologEpilogInserter.cpp | 121 +-
lib/CodeGen/PseudoSourceValue.cpp | 22 +
lib/CodeGen/RegAllocLocal.cpp | 2 +-
lib/CodeGen/RegisterScavenging.cpp | 7 +-
lib/CodeGen/ScheduleDAGInstrs.cpp | 26 +-
lib/CodeGen/ScheduleDAGInstrs.h | 1 +
lib/CodeGen/ScheduleDAGPrinter.cpp | 1 -
lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 10 +-
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 3 +-
lib/CodeGen/SelectionDAG/LegalizeTypes.h | 1 +
lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp | 3 +-
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 7 +
lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 17 +-
lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp | 42 -
lib/CodeGen/SelectionDAG/SelectionDAGBuild.h | 2 -
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 2 +-
lib/CodeGen/StackProtector.cpp | 7 +-
lib/CodeGen/VirtRegMap.cpp | 4 +-
lib/CompilerDriver/Main.cpp | 3 +-
lib/CompilerDriver/Plugin.cpp | 19 +-
lib/ExecutionEngine/JIT/CMakeLists.txt | 1 -
lib/ExecutionEngine/JIT/JITDebugRegisterer.cpp | 1 +
lib/ExecutionEngine/JIT/JITEmitter.cpp | 164 +-
lib/ExecutionEngine/JIT/JITMemoryManager.cpp | 44 +-
.../JIT/OProfileJITEventListener.cpp | 12 +-
lib/MC/MCAsmStreamer.cpp | 26 +-
lib/MC/MCAssembler.cpp | 106 +-
lib/MC/MCContext.cpp | 27 +-
lib/MC/MCExpr.cpp | 22 +-
lib/MC/MCMachOStreamer.cpp | 19 +-
lib/Support/APFloat.cpp | 70 +-
lib/Support/StringExtras.cpp | 56 -
lib/Support/StringMap.cpp | 19 +-
lib/Support/Triple.cpp | 3 +
lib/Support/raw_ostream.cpp | 34 +
lib/System/Unix/Program.inc | 2 +-
lib/Target/ARM/ARMAddressingModes.h | 67 +-
lib/Target/ARM/ARMBaseRegisterInfo.cpp | 47 +-
lib/Target/ARM/ARMBaseRegisterInfo.h | 2 +
lib/Target/ARM/ARMConstantIslandPass.cpp | 96 +-
lib/Target/ARM/ARMISelDAGToDAG.cpp | 39 +-
lib/Target/ARM/ARMISelLowering.cpp | 41 +-
lib/Target/ARM/ARMInstrFormats.td | 35 +-
lib/Target/ARM/ARMInstrInfo.cpp | 1 -
lib/Target/ARM/ARMInstrInfo.td | 14 +-
lib/Target/ARM/ARMInstrNEON.td | 468 +-
lib/Target/ARM/ARMInstrThumb2.td | 35 +
lib/Target/ARM/ARMLoadStoreOptimizer.cpp | 3 +
lib/Target/ARM/ARMRegisterInfo.td | 5 +-
lib/Target/ARM/ARMSubtarget.cpp | 10 +-
lib/Target/ARM/ARMSubtarget.h | 10 +-
lib/Target/ARM/ARMTargetMachine.cpp | 1 -
lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 232 +-
lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp | 338 +-
lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp | 358 +
lib/Target/ARM/AsmPrinter/ARMInstPrinter.h | 89 +
lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp | 166 +
lib/Target/ARM/AsmPrinter/ARMMCInstLower.h | 56 +
lib/Target/ARM/AsmPrinter/CMakeLists.txt | 4 +-
lib/Target/ARM/README-Thumb.txt | 8 -
lib/Target/ARM/Thumb1RegisterInfo.cpp | 49 +-
lib/Target/ARM/Thumb1RegisterInfo.h | 5 +-
lib/Target/ARM/Thumb2ITBlockPass.cpp | 6 +-
lib/Target/ARM/Thumb2RegisterInfo.cpp | 1 -
lib/Target/Blackfin/Blackfin.td | 1 +
lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp | 53 +
lib/Target/Blackfin/BlackfinIntrinsicInfo.h | 28 +
lib/Target/Blackfin/BlackfinIntrinsics.td | 34 +
lib/Target/Blackfin/BlackfinTargetMachine.h | 5 +
lib/Target/Blackfin/CMakeLists.txt | 2 +
lib/Target/Blackfin/Makefile | 2 +-
lib/Target/CBackend/CBackend.cpp | 7 +-
lib/Target/CppBackend/CPPBackend.cpp | 14 -
lib/Target/MSIL/MSILWriter.cpp | 5 +-
lib/Target/MSP430/AsmPrinter/CMakeLists.txt | 2 +
lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp | 63 +-
lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.cpp | 116 +
lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.h | 46 +
lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.cpp | 147 +
lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.h | 49 +
lib/Target/MSP430/MSP430.h | 14 +
lib/Target/MSP430/MSP430ISelDAGToDAG.cpp | 292 +-
lib/Target/MSP430/MSP430ISelLowering.cpp | 27 +-
lib/Target/MSP430/MSP430InstrInfo.cpp | 165 +-
lib/Target/MSP430/MSP430InstrInfo.h | 30 +-
lib/Target/MSP430/MSP430InstrInfo.td | 4 +-
lib/Target/MSP430/MSP430TargetMachine.cpp | 2 +-
lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp | 229 +-
lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h | 12 +-
lib/Target/PIC16/CMakeLists.txt | 1 +
lib/Target/PIC16/Makefile | 2 +-
lib/Target/PIC16/PIC16.h | 267 +-
lib/Target/PIC16/PIC16ABINames.h | 325 +
lib/Target/PIC16/PIC16DebugInfo.cpp | 10 +-
lib/Target/PIC16/PIC16ISelLowering.cpp | 1 +
lib/Target/PIC16/PIC16InstrInfo.cpp | 1 +
lib/Target/PIC16/PIC16MCAsmInfo.cpp | 1 +
lib/Target/PIC16/PIC16MemSelOpt.cpp | 1 +
lib/Target/PIC16/PIC16Passes/Makefile | 17 +
lib/Target/PIC16/PIC16Passes/PIC16Overlay.cpp | 181 +
lib/Target/PIC16/PIC16Passes/PIC16Overlay.h | 55 +
lib/Target/PIC16/PIC16Section.cpp | 96 +
lib/Target/PIC16/PIC16Section.h | 92 +
lib/Target/PIC16/PIC16TargetObjectFile.cpp | 471 +-
lib/Target/PIC16/PIC16TargetObjectFile.h | 163 +-
lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp | 2 +-
lib/Target/README.txt | 51 +-
lib/Target/TargetIntrinsicInfo.cpp | 12 +-
lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp | 4 +-
lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h | 3 +-
lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp | 80 +-
lib/Target/X86/AsmPrinter/X86MCInstLower.cpp | 15 +-
lib/Target/X86/X86ISelLowering.cpp | 98 +-
lib/Target/X86/X86ISelLowering.h | 16 +-
lib/Target/X86/X86Instr64bit.td | 24 +-
lib/Target/X86/X86InstrFormats.td | 4 +-
lib/Target/X86/X86InstrInfo.td | 19 +-
lib/Target/X86/X86InstrSSE.td | 33 +
lib/Target/X86/X86Subtarget.cpp | 2 -
lib/Target/X86/X86Subtarget.h | 17 +-
lib/Transforms/Hello/Hello.cpp | 10 +-
lib/Transforms/IPO/CMakeLists.txt | 1 -
lib/Transforms/IPO/FunctionAttrs.cpp | 5 +-
lib/Transforms/IPO/GlobalDCE.cpp | 2 -
lib/Transforms/IPO/GlobalOpt.cpp | 505 +-
lib/Transforms/IPO/RaiseAllocations.cpp | 118 +-
lib/Transforms/IPO/StripSymbols.cpp | 2 -
lib/Transforms/Scalar/CodeGenPrepare.cpp | 42 +-
lib/Transforms/Scalar/GVN.cpp | 481 +-
lib/Transforms/Scalar/InstructionCombining.cpp | 218 +-
lib/Transforms/Scalar/LoopUnswitch.cpp | 63 +-
lib/Transforms/Scalar/Reassociate.cpp | 1 -
lib/Transforms/Scalar/SCCP.cpp | 6 +-
lib/Transforms/Utils/BasicBlockUtils.cpp | 28 +-
lib/Transforms/Utils/InlineFunction.cpp | 14 +-
lib/Transforms/Utils/InstructionNamer.cpp | 4 +-
lib/Transforms/Utils/LowerAllocations.cpp | 39 +-
lib/Transforms/Utils/SSAUpdater.cpp | 73 +-
lib/VMCore/AsmWriter.cpp | 61 +-
lib/VMCore/ConstantFold.cpp | 169 +-
lib/VMCore/Constants.cpp | 57 +-
lib/VMCore/Core.cpp | 14 +-
lib/VMCore/InlineAsm.cpp | 10 +-
lib/VMCore/Instruction.cpp | 2 -
lib/VMCore/Instructions.cpp | 69 +-
lib/VMCore/LLVMContext.cpp | 26 -
lib/VMCore/LLVMContextImpl.h | 5 +-
lib/VMCore/Metadata.cpp | 444 +-
lib/VMCore/Pass.cpp | 1 +
lib/VMCore/Value.cpp | 1 -
lib/VMCore/Verifier.cpp | 4 +-
mklib | 7517 ++++++++++++++++++++
test/Analysis/BasicAA/modref.ll | 98 +-
test/Assembler/alignstack.ll | 36 +
test/Bindings/Ocaml/vmcore.ml | 6 +-
test/CodeGen/ARM/2009-10-21-InvalidFNeg.ll | 48 +
test/CodeGen/ARM/globals.ll | 75 +
test/CodeGen/ARM/ldrd.ll | 10 +-
test/CodeGen/ARM/movt.ll | 19 +
test/CodeGen/ARM/sbfx.ll | 10 +
test/CodeGen/Blackfin/sync-intr.ll | 3 +
test/CodeGen/CellSPU/2009-01-01-BrCond.ll | 2 +-
.../CodeGen/CellSPU/useful-harnesses/lit.local.cfg | 1 +
test/CodeGen/Generic/switch-lower-feature-2.ll | 4 +-
test/CodeGen/MSP430/Inst16ri.ll | 37 +
test/CodeGen/MSP430/Inst8ri.ll | 37 +
test/CodeGen/PIC16/globals.ll | 6 +-
test/CodeGen/Thumb/2009-08-20-ISelBug.ll | 2 +-
test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll | 44 +
test/CodeGen/Thumb2/thumb2-mov.ll | 56 +-
test/CodeGen/Thumb2/thumb2-mov2.ll | 24 +-
test/CodeGen/X86/2007-01-08-InstrSched.ll | 7 +-
test/CodeGen/X86/2008-07-11-SpillerBug.ll | 2 +-
test/CodeGen/X86/2009-04-20-LinearScanOpt.ll | 2 +-
test/CodeGen/X86/2009-04-21-NoReloadImpDef.ll | 2 +-
.../X86/2009-09-19-SchedCustomLoweringBug.ll | 4 +-
test/CodeGen/X86/2009-10-14-LiveVariablesBug.ll | 15 +
test/CodeGen/X86/2009-10-19-EmergencySpill.ll | 54 +
test/CodeGen/X86/2009-10-19-atomic-cmp-eflags.ll | 69 +
test/CodeGen/X86/abi-isel.ll | 20 +-
test/CodeGen/X86/codegen-prepare-extload.ll | 20 +
test/CodeGen/X86/discontiguous-loops.ll | 72 +
test/CodeGen/X86/fastcc.ll | 2 +-
test/CodeGen/X86/legalize-fmp-oeq-vector-select.ll | 11 +
test/CodeGen/X86/loop-blocks.ll | 207 +
test/CodeGen/X86/palignr.ll | 58 +
test/CodeGen/X86/peep-test-3.ll | 2 +-
test/CodeGen/X86/pic.ll | 2 +-
test/CodeGen/X86/sink-hoist.ll | 6 +-
test/CodeGen/X86/sse2.ll | 8 +-
test/CodeGen/X86/sse3.ll | 22 +-
test/CodeGen/X86/stack-color-with-reg.ll | 4 +-
test/CodeGen/X86/tailcallstack64.ll | 9 +-
test/CodeGen/X86/vec_shuffle-22.ll | 18 +-
test/CodeGen/X86/vec_shuffle-9.ll | 9 +-
test/CodeGen/X86/widen_arith-1.ll | 10 +-
test/CodeGen/X86/widen_arith-2.ll | 7 +-
test/CodeGen/X86/widen_arith-3.ll | 10 +-
test/CodeGen/X86/widen_arith-4.ll | 8 +-
test/CodeGen/X86/widen_arith-5.ll | 9 +-
test/CodeGen/X86/widen_arith-6.ll | 7 +-
test/CodeGen/X86/widen_cast-1.ll | 8 +-
test/CodeGen/X86/widen_cast-2.ll | 11 +-
test/CodeGen/X86/widen_cast-3.ll | 7 +-
test/CodeGen/X86/widen_cast-4.ll | 11 +-
test/CodeGen/X86/widen_cast-5.ll | 4 +-
test/CodeGen/X86/widen_cast-6.ll | 4 +-
test/CodeGen/X86/widen_conv-1.ll | 6 +-
test/CodeGen/X86/widen_conv-2.ll | 4 +-
test/CodeGen/X86/widen_conv-3.ll | 5 +-
test/CodeGen/X86/widen_conv-4.ll | 3 +-
test/CodeGen/X86/widen_extract-1.ll | 12 +
test/CodeGen/X86/widen_select-1.ll | 3 +-
test/CodeGen/X86/widen_shuffle-1.ll | 4 +-
test/CodeGen/X86/widen_shuffle-2.ll | 4 +-
test/DebugInfo/2009-10-16-Phi.ll | 13 +
test/DebugInfo/2009-10-16-Scope.ll | 33 +
test/Feature/md_on_instruction.ll | 3 +-
test/FrontendAda/negative_field_offset.adb | 16 +
test/FrontendC++/alignstack.cpp | 23 +
test/FrontendC++/member-alignment.cpp | 2 +-
test/FrontendC++/varargs.cpp | 19 +
test/FrontendC/alignstack.c | 23 +
test/LLVMC/MultiplePluginPriorities.td | 10 +
test/MC/AsmParser/labels.s | 18 +-
test/MC/AsmParser/variables-invalid.s | 17 +
test/MC/AsmParser/variables.s | 15 +
test/Transforms/ConstProp/constant-expr.ll | 60 +
test/Transforms/ConstProp/loads.ll | 89 +
test/Transforms/GVN/calls-readonly.ll | 28 +-
.../2009-11-16-BrokenPerformHeapAllocSRoA.ll | 26 +
.../2009-11-16-MallocSingleStoreToGlobalVar.ll | 30 +
test/Transforms/GlobalOpt/malloc-promote-2.ll | 4 +-
test/Transforms/GlobalOpt/malloc-promote-3.ll | 4 +-
test/Transforms/Inline/crash.ll | 33 +-
test/Transforms/InstCombine/cast.ll | 10 +-
test/Transforms/InstCombine/crash.ll | 83 +-
test/Transforms/InstCombine/getelementptr.ll | 2 +-
test/Transforms/InstCombine/malloc-free-delete.ll | 2 +-
test/Transforms/InstCombine/malloc2.ll | 7 +-
test/Transforms/InstCombine/malloc3.ll | 2 +-
test/Transforms/JumpThreading/crash.ll | 35 +
.../LoopSimplify/unreachable-loop-pred.ll | 20 +
test/Transforms/SCCP/ipsccp-basic.ll | 135 +-
test/Transforms/SCCP/sccptest.ll | 65 +-
tools/gold/gold-plugin.cpp | 1 +
tools/llc/llc.cpp | 2 +-
tools/lli/lli.cpp | 3 +-
tools/llvm-as/llvm-as.cpp | 66 +-
tools/llvm-ld/CMakeLists.txt | 1 -
tools/llvm-ld/Makefile | 1 -
tools/llvm-ld/llvm-ld.cpp | 339 +-
tools/llvm-mc/AsmParser.cpp | 46 +-
tools/llvm-prof/CMakeLists.txt | 1 -
tools/llvm-prof/Makefile | 1 -
tools/llvm-prof/llvm-prof.cpp | 65 +-
tools/llvmc/doc/LLVMC-Reference.rst | 5 +-
tools/llvmc/example/mcc16/driver/Main.cpp | 13 +
.../example/mcc16/plugins/PIC16Base/PIC16Base.td | 141 +-
.../example/mcc16/plugins/PIC16Base/PluginMain.cpp | 8 +-
tools/llvmc/plugins/Base/Base.td.in | 32 +-
tools/opt/CMakeLists.txt | 1 -
tools/opt/Makefile | 1 -
tools/opt/opt.cpp | 313 +-
unittests/ADT/ValueMapTest.cpp | 291 +
.../ExecutionEngine/JIT/JITMemoryManagerTest.cpp | 77 +-
unittests/ExecutionEngine/JIT/JITTest.cpp | 4 +-
unittests/Support/raw_ostream_test.cpp | 16 +
utils/NewNightlyTest.pl | 944 +--
utils/TableGen/AsmWriterEmitter.cpp | 23 +
utils/TableGen/ClangDiagnosticsEmitter.cpp | 16 +-
utils/TableGen/CodeGenDAGPatterns.h | 2 +
utils/TableGen/DAGISelEmitter.cpp | 12 +-
utils/TableGen/LLVMCConfigurationEmitter.cpp | 637 +-
utils/TableGen/LLVMCConfigurationEmitter.h | 3 +-
utils/TableGen/StringToOffsetTable.h | 9 +-
utils/buildit/GNUmakefile | 2 +-
utils/buildit/build_llvm | 4 +
utils/emacs/tablegen-mode.el | 2 +
utils/lit/LitConfig.py | 22 +
utils/lit/TestFormats.py | 4 +
utils/lit/TestRunner.py | 6 +-
383 files changed, 20097 insertions(+), 5689 deletions(-)
create mode 100644 include/llvm/ADT/ValueMap.h
create mode 100644 include/llvm/Analysis/DomPrinter.h
create mode 100644 include/llvm/Config/AsmParsers.def
create mode 100644 include/llvm/Config/AsmPrinters.def
create mode 100644 include/llvm/Config/Targets.def
create mode 100644 include/llvm/Config/config.h
create mode 100644 include/llvm/Support/DataTypes.h
create mode 100644 lib/Analysis/DomPrinter.cpp
create mode 100644 lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
create mode 100644 lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
create mode 100644 lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp
create mode 100644 lib/Target/ARM/AsmPrinter/ARMMCInstLower.h
create mode 100644 lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp
create mode 100644 lib/Target/Blackfin/BlackfinIntrinsicInfo.h
create mode 100644 lib/Target/Blackfin/BlackfinIntrinsics.td
create mode 100644 lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.cpp
create mode 100644 lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.h
create mode 100644 lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.cpp
create mode 100644 lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.h
create mode 100644 lib/Target/PIC16/PIC16ABINames.h
create mode 100644 lib/Target/PIC16/PIC16Passes/Makefile
create mode 100644 lib/Target/PIC16/PIC16Passes/PIC16Overlay.cpp
create mode 100644 lib/Target/PIC16/PIC16Passes/PIC16Overlay.h
create mode 100644 lib/Target/PIC16/PIC16Section.cpp
create mode 100644 lib/Target/PIC16/PIC16Section.h
create mode 100755 mklib
create mode 100644 test/Assembler/alignstack.ll
create mode 100644 test/CodeGen/ARM/2009-10-21-InvalidFNeg.ll
create mode 100644 test/CodeGen/ARM/globals.ll
create mode 100644 test/CodeGen/ARM/movt.ll
create mode 100644 test/CodeGen/CellSPU/useful-harnesses/lit.local.cfg
create mode 100644 test/CodeGen/MSP430/Inst16ri.ll
create mode 100644 test/CodeGen/MSP430/Inst8ri.ll
create mode 100644 test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll
create mode 100644 test/CodeGen/X86/2009-10-14-LiveVariablesBug.ll
create mode 100644 test/CodeGen/X86/2009-10-19-EmergencySpill.ll
create mode 100644 test/CodeGen/X86/2009-10-19-atomic-cmp-eflags.ll
create mode 100644 test/CodeGen/X86/codegen-prepare-extload.ll
create mode 100644 test/CodeGen/X86/discontiguous-loops.ll
create mode 100644 test/CodeGen/X86/legalize-fmp-oeq-vector-select.ll
create mode 100644 test/CodeGen/X86/loop-blocks.ll
create mode 100644 test/CodeGen/X86/palignr.ll
create mode 100644 test/CodeGen/X86/widen_extract-1.ll
create mode 100644 test/DebugInfo/2009-10-16-Phi.ll
create mode 100644 test/DebugInfo/2009-10-16-Scope.ll
create mode 100644 test/FrontendAda/negative_field_offset.adb
create mode 100644 test/FrontendC++/alignstack.cpp
create mode 100644 test/FrontendC++/varargs.cpp
create mode 100644 test/FrontendC/alignstack.c
create mode 100644 test/LLVMC/MultiplePluginPriorities.td
create mode 100644 test/MC/AsmParser/variables-invalid.s
create mode 100644 test/MC/AsmParser/variables.s
create mode 100644 test/Transforms/ConstProp/constant-expr.ll
create mode 100644 test/Transforms/ConstProp/loads.ll
create mode 100644 test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
create mode 100644 test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
create mode 100644 test/Transforms/LoopSimplify/unreachable-loop-pred.ll
create mode 100644 unittests/ADT/ValueMapTest.cpp
diff --git a/Makefile b/Makefile
index f3bf3f2345eb8..d2000b48387af 100644
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,12 @@ LEVEL := .
#
# When cross-compiling, there are some things (tablegen) that need to
# be build for the build system first.
+
+# If "RC_ProjectName" exists in the environment, and its value is
+# "llvmCore", then this is an "Apple-style" build; search for
+# "Apple-style" in the comments for more info. Anything else is a
+# normal build.
+ifneq ($(RC_ProjectName),llvmCore) # Normal build (not "Apple-style").
ifeq ($(BUILD_DIRS_ONLY),1)
DIRS := lib/System lib/Support utils
OPTIONAL_DIRS :=
@@ -211,3 +217,9 @@ happiness: update all check unittests
.NOTPARALLEL:
+else # Building "Apple-style."
+# In an Apple-style build, once configuration is done, lines marked
+# "Apple-style" are removed with sed! Please don't remove these!
+# Look for the string "Apple-style" in utils/buildit/build_llvm.
+include $(shell find . -name GNUmakefile) # Building "Apple-style."
+endif # Building "Apple-style."
diff --git a/Makefile.rules b/Makefile.rules
index e3f388d543488..4e0bd5cc02376 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -1540,8 +1540,8 @@ $(ObjDir)/%GenCallingConv.inc.tmp : %.td $(ObjDir)/.dir
$(Verb) $(TableGen) -gen-callingconv -o $(call SYSPATH, $@) $<
$(TARGET:%=$(ObjDir)/%GenIntrinsics.inc.tmp): \
-$(ObjDir)/%GenIntrinsics.inc.tmp : Intrinsics%.td $(ObjDir)/.dir
- $(Echo) "Building $(CMAKE_BUILD_TYPE:STRING
Sets the build type for make based generators. Possible
- values are Release, Debug, RelWithDebInfo and MiniSizeRel. On
+ values are Release, Debug, RelWithDebInfo and MinSizeRel. On
systems like Visual Studio the user sets the build type with the IDE
settings.
@@ -260,7 +260,7 @@
Build with threads support, if available. Defaults to ON.
LLVM_ENABLE_ASSERTIONS:BOOL
- Enables code assertions. Defaults to ON if and only if
+ Enables code assertions. Defaults to OFF if and only if
CMAKE_BUILD_TYPE is Release.
LLVM_ENABLE_PIC:BOOL
diff --git a/docs/CommandGuide/FileCheck.pod b/docs/CommandGuide/FileCheck.pod
index 539f66fea5457..d3f640d64dcc7 100644
--- a/docs/CommandGuide/FileCheck.pod
+++ b/docs/CommandGuide/FileCheck.pod
@@ -21,9 +21,6 @@ for matching multiple different inputs in one file in a specific order.
The I file specifies the file that contains the patterns to
match. The file to verify is always read from standard input.
-The input and output of B is beyond the scope of this short
-introduction. Please see the I page in the LLVM documentation.
-
=head1 OPTIONS
=over
@@ -58,6 +55,189 @@ If B verifies that the file matches the expected contents, it exits
with 0. Otherwise, if not, or if an error occurs, it will exit with a non-zero
value.
+=head1 TUTORIAL
+
+FileCheck is typically used from LLVM regression tests, being invoked on the RUN
+line of the test. A simple example of using FileCheck from a RUN line looks
+like this:
+
+ ; RUN: llvm-as < %s | llc -march=x86-64 | FileCheck %s
+
+This syntax says to pipe the current file ("%s") into llvm-as, pipe that into
+llc, then pipe the output of llc into FileCheck. This means that FileCheck will
+be verifying its standard input (the llc output) against the filename argument
+specified (the original .ll file specified by "%s"). To see how this works,
+lets look at the rest of the .ll file (after the RUN line):
+
+ define void @sub1(i32* %p, i32 %v) {
+ entry:
+ ; CHECK: sub1:
+ ; CHECK: subl
+ %0 = tail call i32 @llvm.atomic.load.sub.i32.p0i32(i32* %p, i32 %v)
+ ret void
+ }
+
+ define void @inc4(i64* %p) {
+ entry:
+ ; CHECK: inc4:
+ ; CHECK: incq
+ %0 = tail call i64 @llvm.atomic.load.add.i64.p0i64(i64* %p, i64 1)
+ ret void
+ }
+
+Here you can see some "CHECK:" lines specified in comments. Now you can see
+how the file is piped into llvm-as, then llc, and the machine code output is
+what we are verifying. FileCheck checks the machine code output to verify that
+it matches what the "CHECK:" lines specify.
+
+The syntax of the CHECK: lines is very simple: they are fixed strings that
+must occur in order. FileCheck defaults to ignoring horizontal whitespace
+differences (e.g. a space is allowed to match a tab) but otherwise, the contents
+of the CHECK: line is required to match some thing in the test file exactly.
+
+One nice thing about FileCheck (compared to grep) is that it allows merging
+test cases together into logical groups. For example, because the test above
+is checking for the "sub1:" and "inc4:" labels, it will not match unless there
+is a "subl" in between those labels. If it existed somewhere else in the file,
+that would not count: "grep subl" matches if subl exists anywhere in the
+file.
+
+
+
+=head2 The FileCheck -check-prefix option
+
+The FileCheck -check-prefix option allows multiple test configurations to be
+driven from one .ll file. This is useful in many circumstances, for example,
+testing different architectural variants with llc. Here's a simple example:
+
+ ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin9 -mattr=sse41 \
+ ; RUN: | FileCheck %s -check-prefix=X32
+ ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin9 -mattr=sse41 \
+ ; RUN: | FileCheck %s -check-prefix=X64
+
+ define <4 x i32> @pinsrd_1(i32 %s, <4 x i32> %tmp) nounwind {
+ %tmp1 = insertelement <4 x i32>; %tmp, i32 %s, i32 1
+ ret <4 x i32> %tmp1
+ ; X32: pinsrd_1:
+ ; X32: pinsrd $1, 4(%esp), %xmm0
+
+ ; X64: pinsrd_1:
+ ; X64: pinsrd $1, %edi, %xmm0
+ }
+
+In this case, we're testing that we get the expected code generation with
+both 32-bit and 64-bit code generation.
+
+
+
+=head2 The "CHECK-NEXT:" directive
+
+Sometimes you want to match lines and would like to verify that matches
+happen on exactly consequtive lines with no other lines in between them. In
+this case, you can use CHECK: and CHECK-NEXT: directives to specify this. If
+you specified a custom check prefix, just use "-NEXT:". For
+example, something like this works as you'd expect:
+
+ define void @t2(<2 x double>* %r, <2 x double>* %A, double %B) {
+ %tmp3 = load <2 x double>* %A, align 16
+ %tmp7 = insertelement <2 x double> undef, double %B, i32 0
+ %tmp9 = shufflevector <2 x double> %tmp3,
+ <2 x double> %tmp7,
+ <2 x i32> < i32 0, i32 2 >
+ store <2 x double> %tmp9, <2 x double>* %r, align 16
+ ret void
+
+ ; CHECK: t2:
+ ; CHECK: movl 8(%esp), %eax
+ ; CHECK-NEXT: movapd (%eax), %xmm0
+ ; CHECK-NEXT: movhpd 12(%esp), %xmm0
+ ; CHECK-NEXT: movl 4(%esp), %eax
+ ; CHECK-NEXT: movapd %xmm0, (%eax)
+ ; CHECK-NEXT: ret
+ }
+
+CHECK-NEXT: directives reject the input unless there is exactly one newline
+between it an the previous directive. A CHECK-NEXT cannot be the first
+directive in a file.
+
+
+
+=head2 The "CHECK-NOT:" directive
+
+The CHECK-NOT: directive is used to verify that a string doesn't occur
+between two matches (or the first match and the beginning of the file). For
+example, to verify that a load is removed by a transformation, a test like this
+can be used:
+
+ define i8 @coerce_offset0(i32 %V, i32* %P) {
+ store i32 %V, i32* %P
+
+ %P2 = bitcast i32* %P to i8*
+ %P3 = getelementptr i8* %P2, i32 2
+
+ %A = load i8* %P3
+ ret i8 %A
+ ; CHECK: @coerce_offset0
+ ; CHECK-NOT: load
+ ; CHECK: ret i8
+ }
+
+
+
+=head2 FileCheck Pattern Matching Syntax
+
+The CHECK: and CHECK-NOT: directives both take a pattern to match. For most
+uses of FileCheck, fixed string matching is perfectly sufficient. For some
+things, a more flexible form of matching is desired. To support this, FileCheck
+allows you to specify regular expressions in matching strings, surrounded by
+double braces: B<{{yourregex}}>. Because we want to use fixed string
+matching for a majority of what we do, FileCheck has been designed to support
+mixing and matching fixed string matching with regular expressions. This allows
+you to write things like this:
+
+ ; CHECK: movhpd {{[0-9]+}}(%esp), {{%xmm[0-7]}}
+
+In this case, any offset from the ESP register will be allowed, and any xmm
+register will be allowed.
+
+Because regular expressions are enclosed with double braces, they are
+visually distinct, and you don't need to use escape characters within the double
+braces like you would in C. In the rare case that you want to match double
+braces explicitly from the input, you can use something ugly like
+B<{{[{][{]}}> as your pattern.
+
+
+
+=head2 FileCheck Variables
+
+It is often useful to match a pattern and then verify that it occurs again
+later in the file. For codegen tests, this can be useful to allow any register,
+but verify that that register is used consistently later. To do this, FileCheck
+allows named variables to be defined and substituted into patterns. Here is a
+simple example:
+
+ ; CHECK: test5:
+ ; CHECK: notw [[REGISTER:%[a-z]+]]
+ ; CHECK: andw {{.*}}[[REGISTER]]
+
+The first check line matches a regex (%[a-z]+) and captures it into
+the variables "REGISTER". The second line verifies that whatever is in REGISTER
+occurs later in the file after an "andw". FileCheck variable references are
+always contained in [[ ]] pairs, are named, and their names can be
+formed with the regex "[a-zA-Z][a-zA-Z0-9]*". If a colon follows the
+name, then it is a definition of the variable, if not, it is a use.
+
+FileCheck variables can be defined multiple times, and uses always get the
+latest value. Note that variables are all read at the start of a "CHECK" line
+and are all defined at the end. This means that if you have something like
+"CHECK: [[XYZ:.*]]x[[XYZ]]" that the check line will read the previous
+value of the XYZ variable and define a new one after the match is performed. If
+you need to do something like this you can probably take advantage of the fact
+that FileCheck is not actually line-oriented when it matches, this allows you to
+define two separate CHECK lines that match on the same line.
+
+
+
=head1 AUTHORS
Maintained by The LLVM Team (L).
diff --git a/docs/CommandGuide/index.html b/docs/CommandGuide/index.html
index f1046fac44809..14635ddc2c22e 100644
--- a/docs/CommandGuide/index.html
+++ b/docs/CommandGuide/index.html
@@ -132,6 +132,8 @@ options) arguments to the tool you are interested in.
Flexible file verifier used extensively by the testing harness
tblgen -
target description reader and generator
+lit -
+ LLVM Integrated Tester, for running tests
@@ -146,7 +148,7 @@ options) arguments to the tool you are interested in.
src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01">
LLVM Compiler Infrastructure
- Last modified: $Date: 2009-08-15 17:38:11 +0200 (Sat, 15 Aug 2009) $
+ Last modified: $Date: 2009-10-19 05:54:13 +0200 (Mon, 19 Oct 2009) $