svn commit: r194612 - in vendor/llvm/dist: . autoconf cmake docs examples/BrainF examples/HowToUseJIT examples/Kaleidoscope examples/ParallelJIT include/llvm include/llvm/ADT include/llvm/Analysis ...

Ed Schouten ed at FreeBSD.org
Mon Jun 22 08:08:13 UTC 2009


Author: ed
Date: Mon Jun 22 08:08:12 2009
New Revision: 194612
URL: http://svn.freebsd.org/changeset/base/194612

Log:
  Update LLVM sources to r73879.

Added:
  vendor/llvm/dist/include/llvm/Config/AsmPrinters.def.in
  vendor/llvm/dist/include/llvm/Config/Targets.def.in
  vendor/llvm/dist/include/llvm/MC/
  vendor/llvm/dist/include/llvm/MC/MCInst.h
  vendor/llvm/dist/include/llvm/Support/DebugLoc.h
  vendor/llvm/dist/include/llvm/Support/SourceMgr.h
  vendor/llvm/dist/include/llvm/System/RWMutex.h
  vendor/llvm/dist/include/llvm/System/Threading.h
  vendor/llvm/dist/include/llvm/Target/TargetSelect.h
  vendor/llvm/dist/lib/Support/SourceMgr.cpp
  vendor/llvm/dist/lib/System/RWMutex.cpp
  vendor/llvm/dist/lib/System/Threading.cpp
  vendor/llvm/dist/lib/System/Unix/RWMutex.inc
  vendor/llvm/dist/lib/System/Win32/RWMutex.inc
  vendor/llvm/dist/lib/Target/ARM/ARMSchedule.td
  vendor/llvm/dist/lib/Target/ARM/ARMScheduleV6.td
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp
  vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count5.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/xor-and.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-15-RegScavengerAssert.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-18-ThumbCommuteMul.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-19-RegScavengerAssert.ll
  vendor/llvm/dist/test/CodeGen/ARM/ifcvt9.ll
  vendor/llvm/dist/test/CodeGen/ARM/ldrd.ll
  vendor/llvm/dist/test/CodeGen/ARM/thumb2-add.ll
  vendor/llvm/dist/test/CodeGen/ARM/thumb2-mov.ll
  vendor/llvm/dist/test/CodeGen/ARM/thumb2-mov2.ll
  vendor/llvm/dist/test/CodeGen/ARM/thumb2-shifter.ll
  vendor/llvm/dist/test/CodeGen/CellSPU/mul-with-overflow.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/mul-with-overflow.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-15-not-a-tail-call.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-18-movlp-shuffle-register.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-fpstack2.ll
  vendor/llvm/dist/test/CodeGen/X86/optimize-max-0.ll
  vendor/llvm/dist/test/CodeGen/X86/optimize-max-1.ll
  vendor/llvm/dist/test/CodeGen/X86/optimize-max-2.ll
  vendor/llvm/dist/test/CodeGen/X86/umul-with-overflow.ll
  vendor/llvm/dist/test/DebugInfo/2009-06-15-InlineFuncStart.ll
  vendor/llvm/dist/test/DebugInfo/2009-06-15-abstract_origin.ll
  vendor/llvm/dist/test/Feature/vector-cast-constant-exprs.ll
  vendor/llvm/dist/test/FrontendC++/2009-06-16-DebugInfoCrash.cpp
  vendor/llvm/dist/test/FrontendC++/2009-06-20-DarwinPPCLayout.cpp
  vendor/llvm/dist/test/FrontendC/2009-06-14-HighlyAligned.c
  vendor/llvm/dist/test/FrontendC/2009-06-18-StaticInitTailPadPack.c
  vendor/llvm/dist/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll
  vendor/llvm/dist/test/Transforms/ConstProp/div-zero.ll
  vendor/llvm/dist/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/ashr-tripcount.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/pointer.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/shrunk-constant.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2009-06-16-SRemDemandedBits.ll
  vendor/llvm/dist/test/Transforms/InstCombine/select-load-call.ll
  vendor/llvm/dist/test/Transforms/InstCombine/trunc-mask-ext.ll
  vendor/llvm/dist/test/Transforms/InstCombine/vector-casts-0.ll
  vendor/llvm/dist/test/Transforms/InstCombine/vector-casts-1.ll
  vendor/llvm/dist/test/Transforms/JumpThreading/branch-no-const.ll
  vendor/llvm/dist/test/Transforms/JumpThreading/dup-cond.ll
  vendor/llvm/dist/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/2009-06-15-InvokeCrash.ll
  vendor/llvm/dist/test/Transforms/TailCallElim/dont_reorder_load.ll
  vendor/llvm/dist/test/Transforms/TailCallElim/reorder_load.ll
  vendor/llvm/dist/tools/llvm-mc/
  vendor/llvm/dist/tools/llvm-mc/AsmLexer.cpp
  vendor/llvm/dist/tools/llvm-mc/AsmLexer.h
  vendor/llvm/dist/tools/llvm-mc/AsmParser.cpp
  vendor/llvm/dist/tools/llvm-mc/AsmParser.h
  vendor/llvm/dist/tools/llvm-mc/CMakeLists.txt
  vendor/llvm/dist/tools/llvm-mc/Makefile
  vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp
Deleted:
  vendor/llvm/dist/include/llvm/CodeGen/DebugLoc.h
  vendor/llvm/dist/test/CodeGen/X86/optimize-smax.ll
  vendor/llvm/dist/test/Transforms/SimplifyLibCalls/2008-12-20-StrcmpMemcmp.ll
  vendor/llvm/dist/utils/TableGen/TGSourceMgr.cpp
  vendor/llvm/dist/utils/TableGen/TGSourceMgr.h
Modified:
  vendor/llvm/dist/CMakeLists.txt
  vendor/llvm/dist/Makefile
  vendor/llvm/dist/Makefile.rules
  vendor/llvm/dist/autoconf/configure.ac
  vendor/llvm/dist/cmake/config-ix.cmake
  vendor/llvm/dist/configure
  vendor/llvm/dist/docs/CodeGenerator.html
  vendor/llvm/dist/docs/CommandLine.html
  vendor/llvm/dist/docs/CompilerDriver.html
  vendor/llvm/dist/docs/CompilerDriverTutorial.html
  vendor/llvm/dist/docs/DeveloperPolicy.html
  vendor/llvm/dist/docs/LangRef.html
  vendor/llvm/dist/docs/MakefileGuide.html
  vendor/llvm/dist/docs/ProgrammersManual.html
  vendor/llvm/dist/docs/WritingAnLLVMPass.html
  vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp
  vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp
  vendor/llvm/dist/examples/Kaleidoscope/toy.cpp
  vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp
  vendor/llvm/dist/include/llvm/ADT/PostOrderIterator.h
  vendor/llvm/dist/include/llvm/ADT/Triple.h
  vendor/llvm/dist/include/llvm/Analysis/IVUsers.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h
  vendor/llvm/dist/include/llvm/CallingConv.h
  vendor/llvm/dist/include/llvm/CodeGen/FastISel.h
  vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineFunction.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineInstr.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
  vendor/llvm/dist/include/llvm/Config/config.h.cmake
  vendor/llvm/dist/include/llvm/Config/config.h.in
  vendor/llvm/dist/include/llvm/Constants.h
  vendor/llvm/dist/include/llvm/DerivedTypes.h
  vendor/llvm/dist/include/llvm/Support/CommandLine.h
  vendor/llvm/dist/include/llvm/Support/IRBuilder.h
  vendor/llvm/dist/include/llvm/Support/ManagedStatic.h
  vendor/llvm/dist/include/llvm/System/Atomic.h
  vendor/llvm/dist/include/llvm/System/Mutex.h
  vendor/llvm/dist/include/llvm/System/Path.h
  vendor/llvm/dist/include/llvm/Target/DarwinTargetAsmInfo.h
  vendor/llvm/dist/include/llvm/Target/Target.td
  vendor/llvm/dist/include/llvm/Target/TargetAsmInfo.h
  vendor/llvm/dist/include/llvm/Target/TargetLowering.h
  vendor/llvm/dist/include/llvm/Target/TargetMachine.h
  vendor/llvm/dist/include/llvm/Target/TargetRegisterInfo.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h
  vendor/llvm/dist/include/llvm/Type.h
  vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp
  vendor/llvm/dist/lib/Analysis/DebugInfo.cpp
  vendor/llvm/dist/lib/Analysis/IVUsers.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp
  vendor/llvm/dist/lib/Analysis/ValueTracking.cpp
  vendor/llvm/dist/lib/AsmParser/LLLexer.cpp
  vendor/llvm/dist/lib/AsmParser/LLParser.cpp
  vendor/llvm/dist/lib/AsmParser/LLToken.h
  vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/IfConversion.cpp
  vendor/llvm/dist/lib/CodeGen/LazyLiveness.cpp
  vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp
  vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp
  vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp
  vendor/llvm/dist/lib/CodeGen/MachineRegisterInfo.cpp
  vendor/llvm/dist/lib/CodeGen/PreAllocSplitting.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocLinearScan.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocPBQP.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.cpp
  vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.h
  vendor/llvm/dist/lib/CodeGen/Spiller.cpp
  vendor/llvm/dist/lib/CodeGen/Spiller.h
  vendor/llvm/dist/lib/CodeGen/StrongPHIElimination.cpp
  vendor/llvm/dist/lib/CodeGen/VirtRegMap.cpp
  vendor/llvm/dist/lib/CodeGen/VirtRegMap.h
  vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngineBindings.cpp
  vendor/llvm/dist/lib/Support/CMakeLists.txt
  vendor/llvm/dist/lib/Support/ManagedStatic.cpp
  vendor/llvm/dist/lib/Support/Triple.cpp
  vendor/llvm/dist/lib/System/Atomic.cpp
  vendor/llvm/dist/lib/System/CMakeLists.txt
  vendor/llvm/dist/lib/System/Mutex.cpp
  vendor/llvm/dist/lib/System/Unix/Mutex.inc
  vendor/llvm/dist/lib/System/Unix/Path.inc
  vendor/llvm/dist/lib/System/Unix/Unix.h
  vendor/llvm/dist/lib/System/Win32/Mutex.inc
  vendor/llvm/dist/lib/System/Win32/Path.inc
  vendor/llvm/dist/lib/Target/ARM/ARM.td
  vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td
  vendor/llvm/dist/lib/Target/ARM/ARMCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td
  vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.td
  vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h
  vendor/llvm/dist/lib/Target/ARM/ARMTargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMTargetAsmInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h
  vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Alpha/AlphaISelLowering.cpp
  vendor/llvm/dist/lib/Target/Alpha/AlphaTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Alpha/AlphaTargetMachine.h
  vendor/llvm/dist/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/CBackend/CBackend.cpp
  vendor/llvm/dist/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUISelLowering.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUTargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUTargetMachine.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUTargetMachine.h
  vendor/llvm/dist/lib/Target/CppBackend/CPPBackend.cpp
  vendor/llvm/dist/lib/Target/DarwinTargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/IA64/IA64ISelLowering.cpp
  vendor/llvm/dist/lib/Target/IA64/IA64TargetMachine.cpp
  vendor/llvm/dist/lib/Target/IA64/IA64TargetMachine.h
  vendor/llvm/dist/lib/Target/MSIL/MSILWriter.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.cpp
  vendor/llvm/dist/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16AsmPrinter.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16DebugInfo.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16DebugInfo.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16ISelLowering.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16TargetMachine.cpp
  vendor/llvm/dist/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.h
  vendor/llvm/dist/lib/Target/TargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/CMakeLists.txt
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
  vendor/llvm/dist/lib/Target/X86/README.txt
  vendor/llvm/dist/lib/Target/X86/X86FloatingPoint.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86Instr64bit.td
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td
  vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td
  vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.h
  vendor/llvm/dist/lib/Target/X86/X86TargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreTargetAsmInfo.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp
  vendor/llvm/dist/lib/Transforms/IPO/CMakeLists.txt
  vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PartialInlining.cpp
  vendor/llvm/dist/lib/Transforms/IPO/RaiseAllocations.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/RSProfiling.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/CodeGenPrepare.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/InstructionCombining.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopIndexSplit.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/ScalarReplAggregates.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/TailRecursionElimination.cpp
  vendor/llvm/dist/lib/Transforms/Utils/Local.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LowerAllocations.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp
  vendor/llvm/dist/lib/VMCore/AsmWriter.cpp
  vendor/llvm/dist/lib/VMCore/ConstantFold.cpp
  vendor/llvm/dist/lib/VMCore/Constants.cpp
  vendor/llvm/dist/lib/VMCore/Function.cpp
  vendor/llvm/dist/lib/VMCore/Instructions.cpp
  vendor/llvm/dist/lib/VMCore/LeakDetector.cpp
  vendor/llvm/dist/lib/VMCore/Mangler.cpp
  vendor/llvm/dist/lib/VMCore/Pass.cpp
  vendor/llvm/dist/lib/VMCore/PassManager.cpp
  vendor/llvm/dist/lib/VMCore/Type.cpp
  vendor/llvm/dist/lib/VMCore/TypeSymbolTable.cpp
  vendor/llvm/dist/lib/VMCore/Value.cpp
  vendor/llvm/dist/lib/VMCore/Verifier.cpp
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/avoid-smax-0.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/do-loop.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/smax.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count2.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count3.ll
  vendor/llvm/dist/test/CodeGen/ARM/stm.ll
  vendor/llvm/dist/test/CodeGen/ARM/vargs2.ll
  vendor/llvm/dist/test/CodeGen/X86/fmul-zero.ll
  vendor/llvm/dist/test/CodeGen/X86/iv-users-in-other-loops.ll
  vendor/llvm/dist/test/CodeGen/X86/pic_jumptable.ll
  vendor/llvm/dist/test/CodeGen/X86/tls1-pic.ll
  vendor/llvm/dist/test/CodeGen/X86/tls1.ll
  vendor/llvm/dist/test/CodeGen/X86/tls2-pic.ll
  vendor/llvm/dist/test/CodeGen/X86/tls3-pic.ll
  vendor/llvm/dist/test/CodeGen/X86/tls4-pic.ll
  vendor/llvm/dist/test/Transforms/GVN/pre-single-pred.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/loop_evaluate_6.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/masked-iv.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2009-06-11-StoreAddrSpace.ll
  vendor/llvm/dist/tools/CMakeLists.txt
  vendor/llvm/dist/tools/Makefile
  vendor/llvm/dist/tools/gold/gold-plugin.cpp
  vendor/llvm/dist/tools/llc/llc.cpp
  vendor/llvm/dist/tools/lli/lli.cpp
  vendor/llvm/dist/tools/llvmc/doc/LLVMC-Reference.rst
  vendor/llvm/dist/tools/llvmc/doc/LLVMC-Tutorial.rst
  vendor/llvm/dist/tools/llvmc/driver/Makefile
  vendor/llvm/dist/tools/lto/LTOCodeGenerator.cpp
  vendor/llvm/dist/utils/NewNightlyTest.pl
  vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp
  vendor/llvm/dist/utils/TableGen/CMakeLists.txt
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp
  vendor/llvm/dist/utils/TableGen/Record.h
  vendor/llvm/dist/utils/TableGen/TGLexer.cpp
  vendor/llvm/dist/utils/TableGen/TGLexer.h
  vendor/llvm/dist/utils/TableGen/TGParser.cpp
  vendor/llvm/dist/utils/TableGen/TGParser.h
  vendor/llvm/dist/utils/TableGen/TableGen.cpp

Modified: vendor/llvm/dist/CMakeLists.txt
==============================================================================
--- vendor/llvm/dist/CMakeLists.txt	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/CMakeLists.txt	Mon Jun 22 08:08:12 2009	(r194612)
@@ -81,14 +81,23 @@ if( LLVM_TARGETS_TO_BUILD STREQUAL "all"
   set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} )
 endif()
 
+set(LLVM_ENUM_TARGETS "")
 foreach(c ${LLVM_TARGETS_TO_BUILD})
   list(FIND LLVM_ALL_TARGETS ${c} idx)
   if( idx LESS 0 )
     message(FATAL_ERROR "The target `${c}' does not exists.
     It should be one of\n${LLVM_ALL_TARGETS}")
+  else()
+    set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${c})\n")
   endif()
 endforeach(c)
 
+# Produce llvm/Config/Targets.def
+configure_file(
+  ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/Targets.def.in
+  ${LLVM_BINARY_DIR}/include/llvm/Config/Targets.def
+  )
+
 set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
 
 # The USE_EXPLICIT_DEPENDENCIES variable will be TRUE to indicate that
@@ -250,14 +259,23 @@ add_subdirectory(lib/Linker)
 add_subdirectory(lib/Analysis)
 add_subdirectory(lib/Analysis/IPA)
 
-foreach(t ${LLVM_TARGETS_TO_BUILD})
+ set(LLVM_ENUM_ASM_PRINTERS "")
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
   message(STATUS "Targeting ${t}")
   add_subdirectory(lib/Target/${t})
   if( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
-    add_subdirectory(lib/Target/${t}/AsmPrinter)
-  endif( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
+   add_subdirectory(lib/Target/${t}/AsmPrinter)
+    set(LLVM_ENUM_ASM_PRINTERS 
+        "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")
+ endif( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
 endforeach(t)
 
+# Produce llvm/Config/AsmPrinters.def
+configure_file(
+  ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmPrinters.def.in
+  ${LLVM_BINARY_DIR}/include/llvm/Config/AsmPrinters.def
+  )
+
 add_subdirectory(lib/ExecutionEngine)
 add_subdirectory(lib/ExecutionEngine/Interpreter)
 add_subdirectory(lib/ExecutionEngine/JIT)
@@ -269,7 +287,10 @@ add_subdirectory(lib/Archive)
 add_subdirectory(projects)
 add_subdirectory(tools)
 
-add_subdirectory(examples)
+option(LLVM_EXAMPLES "Build LLVM example programs." OFF)
+if (LLVM_EXAMPLES)
+  add_subdirectory(examples)
+endif ()
 
 install(DIRECTORY include
   DESTINATION .

Modified: vendor/llvm/dist/Makefile
==============================================================================
--- vendor/llvm/dist/Makefile	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/Makefile	Mon Jun 22 08:08:12 2009	(r194612)
@@ -134,6 +134,8 @@ install-libs: install
 #------------------------------------------------------------------------
 FilesToConfig := \
   include/llvm/Config/config.h \
+  include/llvm/Config/Targets.def \
+	include/llvm/Config/AsmPrinters.def \
   include/llvm/Support/DataTypes.h \
   include/llvm/ADT/iterator.h
 FilesToConfigPATH  := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))

Modified: vendor/llvm/dist/Makefile.rules
==============================================================================
--- vendor/llvm/dist/Makefile.rules	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/Makefile.rules	Mon Jun 22 08:08:12 2009	(r194612)
@@ -287,10 +287,8 @@ endif
 
 ifdef ENABLE_COVERAGE
   BuildMode := $(BuildMode)+Coverage
-  # These only go to .NoRelink because otherwise we will end up
-  # linking -lgcov into the .o libraries that get built.
-  CXX.Flags.NoRelink += -ftest-coverage -fprofile-arcs
-  C.Flags.NoRelink   += -ftest-coverage -fprofile-arcs
+  CXX.Flags += -ftest-coverage -fprofile-arcs
+  C.Flags   += -ftest-coverage -fprofile-arcs
 endif
 
 # If DISABLE_ASSERTIONS=1 is specified (make command line or configured),
@@ -315,7 +313,6 @@ endif
 # defined/on.
 ifdef LOADABLE_MODULE
   SHARED_LIBRARY := 1
-  DONT_BUILD_RELINKED := 1
   LINK_LIBS_IN_SHARED := 1
 endif
 
@@ -522,10 +519,10 @@ endif
 #----------------------------------------------------------
 
 ifndef NO_PEDANTIC
-CompileCommonOpts += -pedantic
+CompileCommonOpts += -pedantic -Wno-long-long
 endif
-CompileCommonOpts += -Wall -W -Wwrite-strings -Wno-long-long \
-                     -Wunused -Wno-unused-parameter $(EXTRA_OPTIONS)
+CompileCommonOpts += -Wall -W -Wno-unused-parameter -Wwrite-strings \
+                     $(EXTRA_OPTIONS)
 
 ifeq ($(OS),HP-UX)
   CompileCommonOpts := -D_REENTRANT -D_HPUX_SOURCE
@@ -548,10 +545,8 @@ ifdef UNIVERSAL
   endif
   UNIVERSAL_ARCH_OPTIONS := $(UNIVERSAL_ARCH:%=-arch %)
   CompileCommonOpts += $(UNIVERSAL_ARCH_OPTIONS)
-  Relink.Flags := $(UNIVERSAL_ARCH_OPTIONS)
   ifdef UNIVERSAL_SDK_PATH
     CompileCommonOpts += -isysroot $(UNIVERSAL_SDK_PATH)
-    Relink.Flags      += -isysroot $(UNIVERSAL_SDK_PATH)
   endif
 
   # Building universal cannot compute dependencies automatically.
@@ -582,27 +577,23 @@ CPP.Flags     += $(sort -I$(PROJ_OBJ_DIR
 	         $(CPP.BaseFlags)
 
 ifeq ($(BUILD_COMPONENT), 1)
-  Compile.C     = $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \
+  Compile.C     = $(BUILD_CC) $(CPP.Flags) $(C.Flags) \
                   $(TargetCommonOpts) $(CompileCommonOpts) -c
-  Compile.CXX   = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+  Compile.CXX   = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) \
                   $(TargetCommonOpts) $(CompileCommonOpts) -c
   Preprocess.CXX= $(BUILD_CXX) $(CPP.Flags) $(TargetCommonOpts) \
-                  $(CompileCommonOpts) $(CXX.Flags) $(CXX.Flags.NoRelink) -E
-  Link          = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+                  $(CompileCommonOpts) $(CXX.Flags) -E
+  Link          = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) \
                   $(TargetCommonOpts) $(CompileCommonOpts) $(LD.Flags) $(Strip)
-  Relink        = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) \
-                  $(CompileCommonOpts) $(Relink.Flags)
 else
-  Compile.C     = $(CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \
+  Compile.C     = $(CC) $(CPP.Flags) $(C.Flags) \
                   $(TargetCommonOpts) $(CompileCommonOpts) -c
-  Compile.CXX   = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+  Compile.CXX   = $(CXX) $(CPP.Flags) $(CXX.Flags) \
                   $(TargetCommonOpts) $(CompileCommonOpts) -c
   Preprocess.CXX= $(CXX) $(CPP.Flags) $(TargetCommonOpts) \
-                  $(CompileCommonOpts) $(CXX.Flags) $(CXX.Flags.NoRelink) -E
-  Link          = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \
+                  $(CompileCommonOpts) $(CXX.Flags) -E
+  Link          = $(CXX) $(CPP.Flags) $(CXX.Flags) \
                   $(TargetCommonOpts)  $(CompileCommonOpts) $(LD.Flags) $(Strip)
-  Relink        = $(CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) \
-                  $(CompileCommonOpts) $(Relink.Flags)
 endif
 
 BCCompile.C   = $(LLVMGCCWITHPATH) $(CPP.Flags) $(C.Flags) \
@@ -1048,48 +1039,13 @@ endif
 endif
 
 #---------------------------------------------------------
-# ReLinked Library Targets:
-#   If the user explicitly requests a relinked library with
-#   BUILD_RELINKED, provide it.  Otherwise, if they specify
-#   neither of BUILD_ARCHIVE or DONT_BUILD_RELINKED, give
-#   them one.
+# Library Targets:
+#   If neither BUILD_ARCHIVE or LOADABLE_MODULE are specified, default to
+#   building an archive.
 #---------------------------------------------------------
 ifndef BUILD_ARCHIVE
-ifndef DONT_BUILD_RELINKED
-BUILD_RELINKED = 1
-endif
-endif
-
-ifdef BUILD_RELINKED
-
-all-local:: $(LibName.O)
-
-$(LibName.O): $(ObjectsO) $(LibDir)/.dir
-	$(Echo) Linking $(BuildMode) Object Library $(notdir $@)
-	$(Verb) $(Relink) -r -nodefaultlibs -nostdlib -nostartfiles -o $@ $(ObjectsO)
-
-clean-local::
-ifneq ($(strip $(LibName.O)),)
-	-$(Verb) $(RM) -f $(LibName.O)
-endif
-
-ifdef NO_INSTALL
-install-local::
-	$(Echo) Install circumvented with NO_INSTALL
-uninstall-local::
-	$(Echo) Uninstall circumvented with NO_INSTALL
-else
-DestRelinkedLib = $(PROJ_libdir)/$(LIBRARYNAME).o
-
-install-local:: $(DestRelinkedLib)
-
-$(DestRelinkedLib): $(LibName.O) $(PROJ_libdir)
-	$(Echo) Installing $(BuildMode) Object Library $(DestRelinkedLib)
-	$(Verb) $(INSTALL) $(LibName.O) $(DestRelinkedLib)
-
-uninstall-local::
-	$(Echo) Uninstalling $(BuildMode) Object Library $(DestRelinkedLib)
-	-$(Verb) $(RM) -f $(DestRelinkedLib)
+ifndef LOADABLE_MODULE
+BUILD_ARCHIVE = 1
 endif
 endif
 

Modified: vendor/llvm/dist/autoconf/configure.ac
==============================================================================
--- vendor/llvm/dist/autoconf/configure.ac	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/autoconf/configure.ac	Mon Jun 22 08:08:12 2009	(r194612)
@@ -234,6 +234,13 @@ if test "$llvm_cv_target_arch" = "Unknow
   AC_MSG_WARN([Configuring LLVM for an unknown target archicture])
 fi
 
+# Determine the LLVM native architecture for the target
+case "$llvm_cv_target_arch" in
+    x86)     LLVM_NATIVE_ARCH="X86" ;;
+    x86_64)  LLVM_NATIVE_ARCH="X86" ;;
+    *)       LLVM_NATIVE_ARCH="$llvm_cv_target_arch" ;;
+esac
+  
 dnl Define a substitution, ARCH, for the target architecture
 AC_SUBST(ARCH,$llvm_cv_target_arch)
 
@@ -436,6 +443,28 @@ case "$enableval" in
 esac
 AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD)
 
+# Determine whether we are building LLVM support for the native architecture.
+# If so, define LLVM_NATIVE_ARCH to that LLVM target.
+for a_target in $TARGETS_TO_BUILD; do
+  if test "$a_target" = "$LLVM_NATIVE_ARCH"; then
+    AC_DEFINE_UNQUOTED(LLVM_NATIVE_ARCH,$LLVM_NATIVE_ARCH,
+      [LLVM architecture name for the native architecture, if available])
+  fi
+done
+
+# Build the LLVM_TARGET and LLVM_ASM_PRINTER macro uses for 
+# Targets.def and AsmPrinters.def.
+LLVM_ENUM_TARGETS=""
+LLVM_ENUM_ASM_PRINTERS=""
+for target_to_build in $TARGETS_TO_BUILD; do
+  LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS"
+  if test -f ${srcdir}/lib/Target/${target_to_build}/AsmPrinter/Makefile ; then
+    LLVM_ENUM_ASM_PRINTERS="LLVM_ASM_PRINTER($target_to_build) $LLVM_ENUM_ASM_PRINTERS";
+  fi
+done
+AC_SUBST(LLVM_ENUM_TARGETS)
+AC_SUBST(LLVM_ENUM_ASM_PRINTERS)
+
 dnl Prevent the CBackend from using printf("%a") for floating point so older
 dnl C compilers that cannot deal with the 0x0p+0 hex floating point format
 dnl can still compile the CBE's output
@@ -796,6 +825,9 @@ if test "$ENABLE_THREADS" -eq 1 ; then
   AC_SEARCH_LIBS(pthread_mutex_lock,pthread,
                  AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1],
                            [Have pthread_mutex_lock]))
+  AC_SEARCH_LIBS(pthread_rwlock_init,pthread,
+                 AC_DEFINE([HAVE_PTHREAD_RWLOCK_INIT],[1],
+                 [Have pthread_rwlock_init]))
 fi
 
 dnl Allow extra x86-disassembler library
@@ -919,6 +951,8 @@ AC_LINK_IFELSE(
         volatile unsigned long val = 1;
         __sync_synchronize();
         __sync_val_compare_and_swap(&val, 1, 0);
+        __sync_add_and_fetch(&val, 1);
+        __sync_sub_and_fetch(&val, 1);
         return 0;
       }
     ]]),
@@ -1108,6 +1142,8 @@ dnl you MUST also update Makefile.rules 
 dnl contains the same list of files as AC_CONFIG_HEADERS below. This ensures the
 dnl files can be updated automatically when their *.in sources change.
 AC_CONFIG_HEADERS([include/llvm/Config/config.h])
+AC_CONFIG_FILES([include/llvm/Config/Targets.def])
+AC_CONFIG_FILES([include/llvm/Config/AsmPrinters.def])
 AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h])
 AC_CONFIG_HEADERS([include/llvm/ADT/iterator.h])
 

Modified: vendor/llvm/dist/cmake/config-ix.cmake
==============================================================================
--- vendor/llvm/dist/cmake/config-ix.cmake	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/cmake/config-ix.cmake	Mon Jun 22 08:08:12 2009	(r194612)
@@ -78,6 +78,50 @@ include(GetTargetTriple)
 get_target_triple(LLVM_HOSTTRIPLE)
 message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}")
 
+# Determine the native architecture.
+# FIXME: this will have to change for cross-compiling.
+string(REGEX MATCH "^[^-]*" LLVM_NATIVE_ARCH ${LLVM_HOSTTRIPLE})
+if (LLVM_NATIVE_ARCH MATCHES "i[2-6]86")
+  set(LLVM_NATIVE_ARCH X86)
+elseif (LLVM_NATIVE_ARCH STREQUAL amd64)
+  set(LLVM_NATIVE_ARCH X86)
+elseif (LLVM_NATIVE_ARCH STREQUAL x86_64)
+  set(LLVM_NATIVE_ARCH X86)
+elseif (LLVM_NATIVE_ARCH MATCHES "sparc")
+  set(LLVM_NATIVE_ARCH Sparc)
+elseif (LLVM_NATIVE_ARCH MATCHES "powerpc")
+  set(LLVM_NATIVE_ARCH PowerPC)
+elseif (LLVM_NATIVE_ARCH MATCHES "alpha")
+  set(LLVM_NATIVE_ARCH Alpha)
+elseif (LLVM_NATIVE_ARCH MATCHES "ia64")
+  set(LLVM_NATIVE_ARCH IA64)
+elseif (LLVM_NATIVE_ARCH MATCHES "arm")
+  set(LLVM_NATIVE_ARCH ARM)
+elseif (LLVM_NATIVE_ARCH MATCHES "mips")
+  set(LLVM_NATIVE_ARCH Mips)
+elseif (LLVM_NATIVE_ARCH MATCHES "pic16")
+  set(LLVM_NATIVE_ARCH "PIC16")
+elseif (LLVM_NATIVE_ARCH MATCHES "xcore")
+  set(LLVM_NATIVE_ARCH XCore)
+elseif (LLVM_NATIVE_ARCH MATCHES "msp430")
+  set(LLVM_NATIVE_ARCH MSP430)
+else ()
+  message(STATUS 
+    "Unknown architecture ${LLVM_NATIVE_ARCH}; lli will not JIT code")
+  set(LLVM_NATIVE_ARCH)
+endif ()
+  
+if (LLVM_NATIVE_ARCH)
+  list(FIND LLVM_TARGETS_TO_BUILD ${LLVM_NATIVE_ARCH} NATIVE_ARCH_IDX)
+  if (NATIVE_ARCH_IDX EQUAL -1)
+    message(STATUS 
+      "Native target ${LLVM_NATIVE_ARCH} is not selected; lli will not JIT code")
+    set(LLVM_NATIVE_ARCH)
+  else ()
+    message(STATUS "Native target architecture is ${LLVM_NATIVE_ARCH}")
+  endif ()
+endif()
+
 if( MINGW )
   set(HAVE_LIBIMAGEHLP 1)
   set(HAVE_LIBPSAPI 1)

Modified: vendor/llvm/dist/configure
==============================================================================
--- vendor/llvm/dist/configure	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/configure	Mon Jun 22 08:08:12 2009	(r194612)
@@ -841,6 +841,8 @@ ENABLE_DOXYGEN
 ENABLE_THREADS
 ENABLE_PIC
 TARGETS_TO_BUILD
+LLVM_ENUM_TARGETS
+LLVM_ENUM_ASM_PRINTERS
 ENABLE_CBE_PRINTF_A
 EXTRA_OPTIONS
 BINUTILS_INCDIR
@@ -2401,6 +2403,13 @@ if test "$llvm_cv_target_arch" = "Unknow
 echo "$as_me: WARNING: Configuring LLVM for an unknown target archicture" >&2;}
 fi
 
+# Determine the LLVM native architecture for the target
+case "$llvm_cv_target_arch" in
+    x86)     LLVM_NATIVE_ARCH="X86" ;;
+    x86_64)  LLVM_NATIVE_ARCH="X86" ;;
+    *)       LLVM_NATIVE_ARCH="$llvm_cv_target_arch" ;;
+esac
+
 ARCH=$llvm_cv_target_arch
 
 
@@ -4959,6 +4968,31 @@ esac
 TARGETS_TO_BUILD=$TARGETS_TO_BUILD
 
 
+# Determine whether we are building LLVM support for the native architecture.
+# If so, define LLVM_NATIVE_ARCH to that LLVM target.
+for a_target in $TARGETS_TO_BUILD; do
+  if test "$a_target" = "$LLVM_NATIVE_ARCH"; then
+
+cat >>confdefs.h <<_ACEOF
+#define LLVM_NATIVE_ARCH $LLVM_NATIVE_ARCH
+_ACEOF
+
+  fi
+done
+
+# Build the LLVM_TARGET and LLVM_ASM_PRINTER macro uses for
+# Targets.def and AsmPrinters.def.
+LLVM_ENUM_TARGETS=""
+LLVM_ENUM_ASM_PRINTERS=""
+for target_to_build in $TARGETS_TO_BUILD; do
+  LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS"
+  if test -f ${srcdir}/lib/Target/${target_to_build}/AsmPrinter/Makefile ; then
+    LLVM_ENUM_ASM_PRINTERS="LLVM_ASM_PRINTER($target_to_build) $LLVM_ENUM_ASM_PRINTERS";
+  fi
+done
+
+
+
 # Check whether --enable-cbe-printf-a was given.
 if test "${enable_cbe_printf_a+set}" = set; then
   enableval=$enable_cbe_printf_a;
@@ -10594,7 +10628,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10597 "configure"
+#line 10631 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12738,7 +12772,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 12741 "configure"' > conftest.$ac_ext
+  echo '#line 12775 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -14456,11 +14490,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14459: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14493: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14463: \$? = $ac_status" >&5
+   echo "$as_me:14497: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14724,11 +14758,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14727: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14761: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14731: \$? = $ac_status" >&5
+   echo "$as_me:14765: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14828,11 +14862,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14831: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14865: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14835: \$? = $ac_status" >&5
+   echo "$as_me:14869: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17280,7 +17314,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 17283 "configure"
+#line 17317 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -17380,7 +17414,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 17383 "configure"
+#line 17417 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -19748,11 +19782,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19751: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19785: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19755: \$? = $ac_status" >&5
+   echo "$as_me:19789: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -19852,11 +19886,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19855: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19889: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19859: \$? = $ac_status" >&5
+   echo "$as_me:19893: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -21422,11 +21456,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21425: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21459: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:21429: \$? = $ac_status" >&5
+   echo "$as_me:21463: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -21526,11 +21560,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21529: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21563: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:21533: \$? = $ac_status" >&5
+   echo "$as_me:21567: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -23761,11 +23795,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:23764: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:23798: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:23768: \$? = $ac_status" >&5
+   echo "$as_me:23802: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -24029,11 +24063,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:24032: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:24066: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:24036: \$? = $ac_status" >&5
+   echo "$as_me:24070: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -24133,11 +24167,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:24136: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:24170: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:24140: \$? = $ac_status" >&5
+   echo "$as_me:24174: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -27896,6 +27930,109 @@ _ACEOF
 
 fi
 
+  { echo "$as_me:$LINENO: checking for library containing pthread_rwlock_init" >&5
+echo $ECHO_N "checking for library containing pthread_rwlock_init... $ECHO_C" >&6; }
+if test "${ac_cv_search_pthread_rwlock_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_rwlock_init ();
+int
+main ()
+{
+return pthread_rwlock_init ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' pthread; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_pthread_rwlock_init=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext
+  if test "${ac_cv_search_pthread_rwlock_init+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_pthread_rwlock_init+set}" = set; then
+  :
+else
+  ac_cv_search_pthread_rwlock_init=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_pthread_rwlock_init" >&5
+echo "${ECHO_T}$ac_cv_search_pthread_rwlock_init" >&6; }
+ac_res=$ac_cv_search_pthread_rwlock_init
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PTHREAD_RWLOCK_INIT 1
+_ACEOF
+
+fi
+
 fi
 
 
@@ -33642,6 +33779,8 @@ int main() {
         volatile unsigned long val = 1;
         __sync_synchronize();
         __sync_val_compare_and_swap(&val, 1, 0);
+        __sync_add_and_fetch(&val, 1);
+        __sync_sub_and_fetch(&val, 1);
         return 0;
       }
 
@@ -34120,6 +34259,10 @@ fi
 
 ac_config_headers="$ac_config_headers include/llvm/Config/config.h"
 
+ac_config_files="$ac_config_files include/llvm/Config/Targets.def"
+
+ac_config_files="$ac_config_files include/llvm/Config/AsmPrinters.def"
+
 ac_config_headers="$ac_config_headers include/llvm/Support/DataTypes.h"
 
 ac_config_headers="$ac_config_headers include/llvm/ADT/iterator.h"
@@ -34746,6 +34889,8 @@ for ac_config_target in $ac_config_targe
 do
   case $ac_config_target in
     "include/llvm/Config/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/Config/config.h" ;;
+    "include/llvm/Config/Targets.def") CONFIG_FILES="$CONFIG_FILES include/llvm/Config/Targets.def" ;;
+    "include/llvm/Config/AsmPrinters.def") CONFIG_FILES="$CONFIG_FILES include/llvm/Config/AsmPrinters.def" ;;
     "include/llvm/Support/DataTypes.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/Support/DataTypes.h" ;;
     "include/llvm/ADT/iterator.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/ADT/iterator.h" ;;
     "Makefile.config") CONFIG_FILES="$CONFIG_FILES Makefile.config" ;;
@@ -34914,6 +35059,8 @@ ENABLE_DOXYGEN!$ENABLE_DOXYGEN$ac_delim
 ENABLE_THREADS!$ENABLE_THREADS$ac_delim
 ENABLE_PIC!$ENABLE_PIC$ac_delim
 TARGETS_TO_BUILD!$TARGETS_TO_BUILD$ac_delim
+LLVM_ENUM_TARGETS!$LLVM_ENUM_TARGETS$ac_delim
+LLVM_ENUM_ASM_PRINTERS!$LLVM_ENUM_ASM_PRINTERS$ac_delim
 ENABLE_CBE_PRINTF_A!$ENABLE_CBE_PRINTF_A$ac_delim
 EXTRA_OPTIONS!$EXTRA_OPTIONS$ac_delim
 BINUTILS_INCDIR!$BINUTILS_INCDIR$ac_delim
@@ -34924,8 +35071,6 @@ NM!$NM$ac_delim
 ifGNUmake!$ifGNUmake$ac_delim
 LN_S!$LN_S$ac_delim
 CMP!$CMP$ac_delim
-CP!$CP$ac_delim
-DATE!$DATE$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -34967,6 +35112,8 @@ _ACEOF
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
+CP!$CP$ac_delim
+DATE!$DATE$ac_delim
 FIND!$FIND$ac_delim
 MKDIR!$MKDIR$ac_delim
 MV!$MV$ac_delim
@@ -35048,7 +35195,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 79; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 81; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

Modified: vendor/llvm/dist/docs/CodeGenerator.html
==============================================================================
--- vendor/llvm/dist/docs/CodeGenerator.html	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/docs/CodeGenerator.html	Mon Jun 22 08:08:12 2009	(r194612)
@@ -1773,6 +1773,8 @@ define fastcc i32 @tailcaller(i32 %in1, 
   <li><b>i386-pc-mingw32msvc</b> &mdash; MingW crosscompiler on Linux</li>
 
   <li><b>i686-apple-darwin*</b> &mdash; Apple Darwin on X86</li>
+
+  <li><b>x86_64-unknown-linux-gnu</b> &mdash; Linux</li>
 </ul>
 
 </div>
@@ -2116,7 +2118,7 @@ MOVSX32rm16 -&gt; movsx, 32-bit register
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-05-13 23:33:08 +0200 (Wed, 13 May 2009) $
+  Last modified: $Date: 2009-06-15 12:17:44 +0000 (Mon, 15 Jun 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/CommandLine.html
==============================================================================
--- vendor/llvm/dist/docs/CommandLine.html	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/docs/CommandLine.html	Mon Jun 22 08:08:12 2009	(r194612)
@@ -1116,9 +1116,9 @@ command-line parser sees <b><tt>cl::init
 initial value. (You will get an error at runtime if you don't put them in
 the right order.)</li>
 
-<li><a name="cl::location">The <b><tt>cl::location</tt></b></a> attribute where to
-store the value for a parsed command line option if using external storage.  See
-the section on <a href="#storage">Internal vs External Storage</a> for more
+<li><a name="cl::location">The <b><tt>cl::location</tt></b></a> attribute where
+to store the value for a parsed command line option if using external storage.
+See the section on <a href="#storage">Internal vs External Storage</a> for more
 information.</li>
 
 <li><a name="cl::aliasopt">The <b><tt>cl::aliasopt</tt></b></a> attribute
@@ -1146,6 +1146,11 @@ specify macro options where the option n
 this macro, the first argument is the enum value, the second is the flag name,
 and the second is the description.</li>
 
+</ol>
+
+You will get a compile time error if you try to use cl::values with a parser
+that does not support it.</li>
+
 <li><a name="cl::multi_val">The <b><tt>cl::multi_val</tt></b></a>
 attribute specifies that this option takes has multiple values
 (example: <tt>-sectalign segname sectname sectvalue</tt>). This
@@ -1156,12 +1161,6 @@ types). It is allowed to use all of the 
 multi-valued options (besides <tt>cl::ValueDisallowed</tt>,
 obviously).</li>
 
-
-</ol>
-
-You will get a compile time error if you try to use cl::values with a parser
-that does not support it.</li>
-
 </ul>
 
 </div>
@@ -1973,7 +1972,7 @@ tutorial.</p>
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-04-08 05:43:51 +0200 (Wed, 08 Apr 2009) $
+  Last modified: $Date: 2009-06-17 03:09:39 +0000 (Wed, 17 Jun 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/CompilerDriver.html
==============================================================================
--- vendor/llvm/dist/docs/CompilerDriver.html	Mon Jun 22 04:21:02 2009	(r194611)
+++ vendor/llvm/dist/docs/CompilerDriver.html	Mon Jun 22 08:08:12 2009	(r194612)
@@ -21,21 +21,22 @@ The ReST source lives in the directory '
 <li><a class="reference internal" href="#compiling-with-llvmc" id="id5">Compiling with LLVMC</a></li>
 <li><a class="reference internal" href="#predefined-options" id="id6">Predefined options</a></li>
 <li><a class="reference internal" href="#compiling-llvmc-plugins" id="id7">Compiling LLVMC plugins</a></li>
-<li><a class="reference internal" href="#customizing-llvmc-the-compilation-graph" id="id8">Customizing LLVMC: the compilation graph</a></li>
-<li><a class="reference internal" href="#describing-options" id="id9">Describing options</a><ul>
-<li><a class="reference internal" href="#external-options" id="id10">External options</a></li>
+<li><a class="reference internal" href="#compiling-standalone-llvmc-based-drivers" id="id8">Compiling standalone LLVMC-based drivers</a></li>
+<li><a class="reference internal" href="#customizing-llvmc-the-compilation-graph" id="id9">Customizing LLVMC: the compilation graph</a></li>
+<li><a class="reference internal" href="#describing-options" id="id10">Describing options</a><ul>
+<li><a class="reference internal" href="#external-options" id="id11">External options</a></li>
 </ul>
 </li>
-<li><a class="reference internal" href="#conditional-evaluation" id="id11">Conditional evaluation</a></li>
-<li><a class="reference internal" href="#writing-a-tool-description" id="id12">Writing a tool description</a><ul>
-<li><a class="reference internal" href="#actions" id="id13">Actions</a></li>
+<li><a class="reference internal" href="#conditional-evaluation" id="id12">Conditional evaluation</a></li>
+<li><a class="reference internal" href="#writing-a-tool-description" id="id13">Writing a tool description</a><ul>
+<li><a class="reference internal" href="#actions" id="id14">Actions</a></li>
 </ul>
 </li>
-<li><a class="reference internal" href="#language-map" id="id14">Language map</a></li>
-<li><a class="reference internal" href="#more-advanced-topics" id="id15">More advanced topics</a><ul>
-<li><a class="reference internal" href="#hooks-and-environment-variables" id="id16">Hooks and environment variables</a></li>
-<li><a class="reference internal" href="#how-plugins-are-loaded" id="id17">How plugins are loaded</a></li>
-<li><a class="reference internal" href="#debugging" id="id18">Debugging</a></li>
+<li><a class="reference internal" href="#language-map" id="id15">Language map</a></li>
+<li><a class="reference internal" href="#more-advanced-topics" id="id16">More advanced topics</a><ul>
+<li><a class="reference internal" href="#hooks-and-environment-variables" id="id17">Hooks and environment variables</a></li>
+<li><a class="reference internal" href="#how-plugins-are-loaded" id="id18">How plugins are loaded</a></li>
+<li><a class="reference internal" href="#debugging" id="id19">Debugging</a></li>
 </ul>
 </li>
 </ul>
@@ -56,7 +57,7 @@ abstract graph. The structure of this gr
 by plugins, which can be either statically or dynamically linked. This
 makes it possible to easily adapt LLVMC for other purposes - for
 example, as a build tool for game resources.</p>
-<p>Because LLVMC employs <a class="reference external" href="http://llvm.cs.uiuc.edu/docs/TableGenFundamentals.html">TableGen</a> as its configuration language, you
+<p>Because LLVMC employs <a class="reference external" href="http://llvm.org/docs/TableGenFundamentals.html">TableGen</a> as its configuration language, you
 need to be familiar with it to customize LLVMC.</p>
 </div>
 <div class="section" id="compiling-with-llvmc">
@@ -70,12 +71,12 @@ $ llvmc -O3 -Wall hello.cpp
 $ ./a.out
 hello
 </pre>
-<p>One nice feature of LLVMC is that one doesn't have to distinguish
-between different compilers for different languages (think <tt class="docutils literal"><span class="pre">g++</span></tt> and
-<tt class="docutils literal"><span class="pre">gcc</span></tt>) - the right toolchain is chosen automatically based on input
-language names (which are, in turn, determined from file
-extensions). If you want to force files ending with &quot;.c&quot; to compile as
-C++, use the <tt class="docutils literal"><span class="pre">-x</span></tt> option, just like you would do it with <tt class="docutils literal"><span class="pre">gcc</span></tt>:</p>
+<p>One nice feature of LLVMC is that one doesn't have to distinguish between
+different compilers for different languages (think <tt class="docutils literal"><span class="pre">g++</span></tt> vs.  <tt class="docutils literal"><span class="pre">gcc</span></tt>) - the
+right toolchain is chosen automatically based on input language names (which
+are, in turn, determined from file extensions). If you want to force files
+ending with &quot;.c&quot; to compile as C++, use the <tt class="docutils literal"><span class="pre">-x</span></tt> option, just like you would
+do it with <tt class="docutils literal"><span class="pre">gcc</span></tt>:</p>
 <pre class="literal-block">
 $ # hello.c is really a C++ file
 $ llvmc -x c++ hello.c
@@ -110,16 +111,17 @@ until the next -x option.</li>
 <li><tt class="docutils literal"><span class="pre">-v</span></tt> - Enable verbose mode, i.e. print out all executed commands.</li>
 <li><tt class="docutils literal"><span class="pre">--check-graph</span></tt> - Check the compilation for common errors like mismatched
 output/input language names, multiple default edges and cycles. Because of
-plugins, these checks can't be performed at compile-time. Exit with code zero if
-no errors were found, and return the number of found errors otherwise. Hidden
-option, useful for debugging LLVMC plugins.</li>
+plugins, these checks can't be performed at compile-time. Exit with code zero
+if no errors were found, and return the number of found errors
+otherwise. Hidden option, useful for debugging LLVMC plugins.</li>
 <li><tt class="docutils literal"><span class="pre">--view-graph</span></tt> - Show a graphical representation of the compilation graph
 and exit. Requires that you have <tt class="docutils literal"><span class="pre">dot</span></tt> and <tt class="docutils literal"><span class="pre">gv</span></tt> programs installed. Hidden
 option, useful for debugging LLVMC plugins.</li>
 <li><tt class="docutils literal"><span class="pre">--write-graph</span></tt> - Write a <tt class="docutils literal"><span class="pre">compilation-graph.dot</span></tt> file in the current
 directory with the compilation graph description in Graphviz format (identical
-to the file used by the <tt class="docutils literal"><span class="pre">--view-graph</span></tt> option). The <tt class="docutils literal"><span class="pre">-o</span></tt> option can be used
-to set the output file name. Hidden option, useful for debugging LLVMC plugins.</li>
+to the file used by the <tt class="docutils literal"><span class="pre">--view-graph</span></tt> option). The <tt class="docutils literal"><span class="pre">-o</span></tt> option can be
+used to set the output file name. Hidden option, useful for debugging LLVMC
+plugins.</li>
 <li><tt class="docutils literal"><span class="pre">--save-temps</span></tt> - Write temporary files to the current directory
 and do not delete them on exit. Hidden option, useful for debugging.</li>
 <li><tt class="docutils literal"><span class="pre">--help</span></tt>, <tt class="docutils literal"><span class="pre">--help-hidden</span></tt>, <tt class="docutils literal"><span class="pre">--version</span></tt> - These options have
@@ -154,33 +156,58 @@ generic:</p>
 <pre class="literal-block">
 $ mv Simple.td MyPlugin.td
 </pre>
-<p>Note that the plugin source directory must be placed under
-<tt class="docutils literal"><span class="pre">$LLVMC_DIR/plugins</span></tt> to make use of the existing build
-infrastructure. To build a version of the LLVMC executable called
-<tt class="docutils literal"><span class="pre">mydriver</span></tt> with your plugin compiled in, use the following command:</p>
-<pre class="literal-block">
-$ cd $LLVMC_DIR
-$ make BUILTIN_PLUGINS=MyPlugin DRIVER_NAME=mydriver
-</pre>
 <p>To build your plugin as a dynamic library, just <tt class="docutils literal"><span class="pre">cd</span></tt> to its source
 directory and run <tt class="docutils literal"><span class="pre">make</span></tt>. The resulting file will be called
-<tt class="docutils literal"><span class="pre">LLVMC$(LLVMC_PLUGIN).$(DLL_EXTENSION)</span></tt> (in our case,
-<tt class="docutils literal"><span class="pre">LLVMCMyPlugin.so</span></tt>). This library can be then loaded in with the
+<tt class="docutils literal"><span class="pre">plugin_llvmc_$(LLVMC_PLUGIN).$(DLL_EXTENSION)</span></tt> (in our case,
+<tt class="docutils literal"><span class="pre">plugin_llvmc_MyPlugin.so</span></tt>). This library can be then loaded in with the
 <tt class="docutils literal"><span class="pre">-load</span></tt> option. Example:</p>
 <pre class="literal-block">
 $ cd $LLVMC_DIR/plugins/Simple
 $ make
-$ llvmc -load $LLVM_DIR/Release/lib/LLVMCSimple.so
+$ llvmc -load $LLVM_DIR/Release/lib/plugin_llvmc_Simple.so
+</pre>
+</div>
+<div class="section" id="compiling-standalone-llvmc-based-drivers">
+<h1><a class="toc-backref" href="#id8">Compiling standalone LLVMC-based drivers</a></h1>
+<p>By default, the <tt class="docutils literal"><span class="pre">llvmc</span></tt> executable consists of a driver core plus several
+statically linked plugins (<tt class="docutils literal"><span class="pre">Base</span></tt> and <tt class="docutils literal"><span class="pre">Clang</span></tt> at the moment). You can
+produce a standalone LLVMC-based driver executable by linking the core with your
+own plugins. The recommended way to do this is by starting with the provided
+<tt class="docutils literal"><span class="pre">Skeleton</span></tt> example (<tt class="docutils literal"><span class="pre">$LLVMC_DIR/example/Skeleton</span></tt>):</p>
+<pre class="literal-block">
+$ cd $LLVMC_DIR/example/
+$ cp -r Skeleton mydriver
+$ cd mydriver
+$ vim Makefile
+[...]
+$ make
+</pre>
+<p>If you're compiling LLVM with different source and object directories, then you
+must perform the following additional steps before running <tt class="docutils literal"><span class="pre">make</span></tt>:</p>
+<pre class="literal-block">
+# LLVMC_SRC_DIR = $LLVM_SRC_DIR/tools/llvmc/
+# LLVMC_OBJ_DIR = $LLVM_OBJ_DIR/tools/llvmc/
+$ cp $LLVMC_SRC_DIR/example/mydriver/Makefile \
+  $LLVMC_OBJ_DIR/example/mydriver/
+$ cd $LLVMC_OBJ_DIR/example/mydriver
+$ make
+</pre>
+<p>Another way to do the same thing is by using the following command:</p>
+<pre class="literal-block">
+$ cd $LLVMC_DIR
+$ make LLVMC_BUILTIN_PLUGINS=MyPlugin LLVMC_BASED_DRIVER_NAME=mydriver
 </pre>
+<p>This works with both srcdir == objdir and srcdir != objdir, but assumes that the
+plugin source directory was placed under <tt class="docutils literal"><span class="pre">$LLVMC_DIR/plugins</span></tt>.</p>
 <p>Sometimes, you will want a 'bare-bones' version of LLVMC that has no
 built-in plugins. It can be compiled with the following command:</p>
 <pre class="literal-block">
 $ cd $LLVMC_DIR
-$ make BUILTIN_PLUGINS=&quot;&quot;
+$ make LLVMC_BUILTIN_PLUGINS=&quot;&quot;
 </pre>
 </div>
 <div class="section" id="customizing-llvmc-the-compilation-graph">
-<h1><a class="toc-backref" href="#id8">Customizing LLVMC: the compilation graph</a></h1>
+<h1><a class="toc-backref" href="#id9">Customizing LLVMC: the compilation graph</a></h1>
 <p>Each TableGen configuration file should include the common
 definitions:</p>
 <pre class="literal-block">
@@ -248,7 +275,7 @@ debugging), run <tt class="docutils lite
 <tt class="docutils literal"><span class="pre">gsview</span></tt> installed for this to work properly.</p>
 </div>
 <div class="section" id="describing-options">
-<h1><a class="toc-backref" href="#id9">Describing options</a></h1>
+<h1><a class="toc-backref" href="#id10">Describing options</a></h1>
 <p>Command-line options that the plugin supports are defined by using an
 <tt class="docutils literal"><span class="pre">OptionList</span></tt>:</p>
 <pre class="literal-block">
@@ -317,7 +344,7 @@ the <tt class="docutils literal"><span c
 </li>
 </ul>
 <div class="section" id="external-options">
-<h2><a class="toc-backref" href="#id10">External options</a></h2>
+<h2><a class="toc-backref" href="#id11">External options</a></h2>
 <p>Sometimes, when linking several plugins together, one plugin needs to
 access options defined in some other plugin. Because of the way
 options are implemented, such options must be marked as
@@ -332,7 +359,7 @@ for. Example:</p>
 </div>
 </div>
 <div class="section" id="conditional-evaluation">
-<span id="case"></span><h1><a class="toc-backref" href="#id11">Conditional evaluation</a></h1>
+<span id="case"></span><h1><a class="toc-backref" href="#id12">Conditional evaluation</a></h1>

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list