Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Jul 2009 13:58:26 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r195340 - in vendor/llvm/dist: . autoconf cmake docs examples/BrainF examples/Fibonacci examples/HowToUseJIT examples/Kaleidoscope examples/ModuleMaker examples/ParallelJIT include/llvm...
Message-ID:  <200907041358.n64DwQFg014366@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Sat Jul  4 13:58:26 2009
New Revision: 195340
URL: http://svn.freebsd.org/changeset/base/195340

Log:
  Import LLVM 74788.

Added:
  vendor/llvm/dist/include/llvm/LLVMContext.h
  vendor/llvm/dist/include/llvm/System/Errno.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/SSI.h
  vendor/llvm/dist/lib/CompilerDriver/BuiltinOptions.cpp
  vendor/llvm/dist/lib/CompilerDriver/Main.cpp
  vendor/llvm/dist/lib/System/Errno.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.h
  vendor/llvm/dist/lib/Target/ARM/Thumb1RegisterInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb1RegisterInfo.h
  vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.h
  vendor/llvm/dist/lib/Target/ARM/Thumb2RegisterInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb2RegisterInfo.h
  vendor/llvm/dist/lib/Transforms/Utils/SSI.cpp
  vendor/llvm/dist/lib/VMCore/LLVMContext.cpp
  vendor/llvm/dist/lib/VMCore/LLVMContextImpl.h
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/dg.exp
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/local-array.ll
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/no-array.ll
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/siv-strong1.ll
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/siv-strong2.ll
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/ziv1.ll
  vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/ziv2.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-30-RegScavengerAssert.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-30-RegScavengerAssert2.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-30-RegScavengerAssert3.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-30-RegScavengerAssert4.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-30-RegScavengerAssert5.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-07-01-CommuteBug.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/available-externally.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-cmn.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-jumptbl.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldr.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldr_ext.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldr_post.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldr_pre.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldrb.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldrh.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sbc2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str_post.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str_pre.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-strb.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-strh.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sub.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sub2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sub4.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sub5.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-sxt_rot.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-teq.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-teq2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-tst.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-tst2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-uxt_rot.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-uxtb.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/tls1.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/tls2.ll
  vendor/llvm/dist/test/CodeGen/X86/fast-isel-constpool.ll
  vendor/llvm/dist/test/CodeGen/X86/fast-isel-gv.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-fpstack3.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-fpstack4.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-fpstack5.ll
  vendor/llvm/dist/test/Feature/mdnode2.ll
  vendor/llvm/dist/test/Feature/mdnode3.ll
  vendor/llvm/dist/test/FrontendC++/2009-06-30-ByrefBlock.cpp
  vendor/llvm/dist/test/MC/AsmParser/directive_align.s
  vendor/llvm/dist/test/MC/AsmParser/directive_symbol_attrs.s
  vendor/llvm/dist/test/MC/AsmParser/exprs.s
  vendor/llvm/dist/test/MC/AsmParser/x86_operands.s
  vendor/llvm/dist/test/TableGen/ListArgs.td
  vendor/llvm/dist/test/TableGen/ListArgsSimple.td
  vendor/llvm/dist/test/Transforms/IndVarSimplify/loop_evaluate9.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2009-07-02-MaskedIntVector.ll
  vendor/llvm/dist/test/Transforms/InstCombine/bitcast-scalar-to-vector.ll
  vendor/llvm/dist/test/Transforms/LoopIndexSplit/non-iv-cmp-operand.ll
  vendor/llvm/dist/test/Transforms/LoopSimplify/merge-exits.ll
  vendor/llvm/dist/tools/llvm-mc/AsmExpr.cpp
  vendor/llvm/dist/tools/llvm-mc/AsmExpr.h
  vendor/llvm/dist/unittests/VMCore/PassManagerTest.cpp
  vendor/llvm/dist/utils/crosstool/ARM/README
Deleted:
  vendor/llvm/dist/lib/Target/ARM/ThumbInstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ThumbInstrInfo.h
Modified:
  vendor/llvm/dist/Makefile.config.in
  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/CodingStandards.html
  vendor/llvm/dist/docs/CompilerDriver.html
  vendor/llvm/dist/docs/FAQ.html
  vendor/llvm/dist/docs/ReleaseNotes-2.6.html
  vendor/llvm/dist/docs/TableGenFundamentals.html
  vendor/llvm/dist/docs/WritingAnLLVMPass.html
  vendor/llvm/dist/examples/BrainF/BrainF.cpp
  vendor/llvm/dist/examples/BrainF/BrainF.h
  vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp
  vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp
  vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp
  vendor/llvm/dist/examples/Kaleidoscope/toy.cpp
  vendor/llvm/dist/examples/ModuleMaker/ModuleMaker.cpp
  vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp
  vendor/llvm/dist/include/llvm-c/BitReader.h
  vendor/llvm/dist/include/llvm-c/Core.h
  vendor/llvm/dist/include/llvm-c/lto.h
  vendor/llvm/dist/include/llvm/ADT/APInt.h
  vendor/llvm/dist/include/llvm/ADT/FoldingSet.h
  vendor/llvm/dist/include/llvm/ADT/PointerUnion.h
  vendor/llvm/dist/include/llvm/ADT/Statistic.h
  vendor/llvm/dist/include/llvm/ADT/Triple.h
  vendor/llvm/dist/include/llvm/Analysis/DebugInfo.h
  vendor/llvm/dist/include/llvm/Analysis/Dominators.h
  vendor/llvm/dist/include/llvm/Analysis/IVUsers.h
  vendor/llvm/dist/include/llvm/Analysis/LoopDependenceAnalysis.h
  vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h
  vendor/llvm/dist/include/llvm/Assembly/Parser.h
  vendor/llvm/dist/include/llvm/Bitcode/Archive.h
  vendor/llvm/dist/include/llvm/Bitcode/BitstreamReader.h
  vendor/llvm/dist/include/llvm/Bitcode/ReaderWriter.h
  vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h
  vendor/llvm/dist/include/llvm/CodeGen/BinaryObject.h
  vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineFunction.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineInstrBuilder.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineLoopInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h
  vendor/llvm/dist/include/llvm/CodeGen/RegisterScavenging.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
  vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.h
  vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td
  vendor/llvm/dist/include/llvm/CompilerDriver/Main.inc
  vendor/llvm/dist/include/llvm/Config/config.h.cmake
  vendor/llvm/dist/include/llvm/Config/config.h.in
  vendor/llvm/dist/include/llvm/Debugger/Debugger.h
  vendor/llvm/dist/include/llvm/DerivedTypes.h
  vendor/llvm/dist/include/llvm/Function.h
  vendor/llvm/dist/include/llvm/Intrinsics.td
  vendor/llvm/dist/include/llvm/LinkAllPasses.h
  vendor/llvm/dist/include/llvm/LinkAllVMCore.h
  vendor/llvm/dist/include/llvm/Linker.h
  vendor/llvm/dist/include/llvm/MC/MCContext.h
  vendor/llvm/dist/include/llvm/MC/MCInst.h
  vendor/llvm/dist/include/llvm/MC/MCSection.h
  vendor/llvm/dist/include/llvm/MC/MCStreamer.h
  vendor/llvm/dist/include/llvm/MC/MCSymbol.h
  vendor/llvm/dist/include/llvm/MC/MCValue.h
  vendor/llvm/dist/include/llvm/Module.h
  vendor/llvm/dist/include/llvm/Pass.h
  vendor/llvm/dist/include/llvm/Support/SourceMgr.h
  vendor/llvm/dist/include/llvm/Support/TypeBuilder.h
  vendor/llvm/dist/include/llvm/Target/TargetCallingConv.td
  vendor/llvm/dist/include/llvm/Target/TargetELFWriterInfo.h
  vendor/llvm/dist/include/llvm/Target/TargetLowering.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h
  vendor/llvm/dist/lib/Analysis/DebugInfo.cpp
  vendor/llvm/dist/lib/Analysis/IPA/Andersens.cpp
  vendor/llvm/dist/lib/Analysis/LoopDependenceAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/LoopInfo.cpp
  vendor/llvm/dist/lib/Analysis/LoopPass.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/Archive/Archive.cpp
  vendor/llvm/dist/lib/Archive/ArchiveInternals.h
  vendor/llvm/dist/lib/Archive/ArchiveReader.cpp
  vendor/llvm/dist/lib/Archive/ArchiveWriter.cpp
  vendor/llvm/dist/lib/AsmParser/LLLexer.cpp
  vendor/llvm/dist/lib/AsmParser/LLLexer.h
  vendor/llvm/dist/lib/AsmParser/LLParser.cpp
  vendor/llvm/dist/lib/AsmParser/LLParser.h
  vendor/llvm/dist/lib/AsmParser/Parser.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/BitReader.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.h
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h
  vendor/llvm/dist/lib/CodeGen/CMakeLists.txt
  vendor/llvm/dist/lib/CodeGen/ELF.h
  vendor/llvm/dist/lib/CodeGen/ELFCodeEmitter.cpp
  vendor/llvm/dist/lib/CodeGen/ELFCodeEmitter.h
  vendor/llvm/dist/lib/CodeGen/ELFWriter.cpp
  vendor/llvm/dist/lib/CodeGen/ELFWriter.h
  vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp
  vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp
  vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp
  vendor/llvm/dist/lib/CodeGen/MachineLoopInfo.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocLinearScan.cpp
  vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/CMakeLists.txt
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
  vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.cpp
  vendor/llvm/dist/lib/CodeGen/TargetInstrInfoImpl.cpp
  vendor/llvm/dist/lib/CodeGen/VirtRegRewriter.cpp
  vendor/llvm/dist/lib/CompilerDriver/Action.cpp
  vendor/llvm/dist/lib/CompilerDriver/CompilationGraph.cpp
  vendor/llvm/dist/lib/CompilerDriver/Makefile
  vendor/llvm/dist/lib/CompilerDriver/Tool.cpp
  vendor/llvm/dist/lib/Debugger/Debugger.cpp
  vendor/llvm/dist/lib/Debugger/ProgramInfo.cpp
  vendor/llvm/dist/lib/ExecutionEngine/JIT/JIT.cpp
  vendor/llvm/dist/lib/Linker/LinkArchives.cpp
  vendor/llvm/dist/lib/Linker/LinkItems.cpp
  vendor/llvm/dist/lib/Linker/Linker.cpp
  vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp
  vendor/llvm/dist/lib/Makefile
  vendor/llvm/dist/lib/Support/APInt.cpp
  vendor/llvm/dist/lib/Support/Annotation.cpp
  vendor/llvm/dist/lib/Support/SourceMgr.cpp
  vendor/llvm/dist/lib/Support/SystemUtils.cpp
  vendor/llvm/dist/lib/Support/Triple.cpp
  vendor/llvm/dist/lib/System/CMakeLists.txt
  vendor/llvm/dist/lib/System/ThreadLocal.cpp
  vendor/llvm/dist/lib/System/Unix/Unix.h
  vendor/llvm/dist/lib/System/Win32/ThreadLocal.inc
  vendor/llvm/dist/lib/Target/ARM/ARM.h
  vendor/llvm/dist/lib/Target/ARM/ARMAddressingModes.h
  vendor/llvm/dist/lib/Target/ARM/ARMCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.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/ARMInstrFormats.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.h
  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/ARMMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.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/ARM/CMakeLists.txt
  vendor/llvm/dist/lib/Target/ARM/README.txt
  vendor/llvm/dist/lib/Target/Alpha/Alpha.h
  vendor/llvm/dist/lib/Target/Alpha/AlphaISelLowering.cpp
  vendor/llvm/dist/lib/Target/Alpha/AlphaISelLowering.h
  vendor/llvm/dist/lib/Target/Alpha/AlphaInstrInfo.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/Alpha/CMakeLists.txt
  vendor/llvm/dist/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/CellSPU/CMakeLists.txt
  vendor/llvm/dist/lib/Target/CellSPU/SPU.h
  vendor/llvm/dist/lib/Target/CellSPU/SPUISelLowering.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUISelLowering.h
  vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUTargetMachine.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUTargetMachine.h
  vendor/llvm/dist/lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/IA64/CMakeLists.txt
  vendor/llvm/dist/lib/Target/IA64/IA64.h
  vendor/llvm/dist/lib/Target/IA64/IA64ISelLowering.cpp
  vendor/llvm/dist/lib/Target/IA64/IA64ISelLowering.h
  vendor/llvm/dist/lib/Target/IA64/IA64TargetMachine.cpp
  vendor/llvm/dist/lib/Target/IA64/IA64TargetMachine.h
  vendor/llvm/dist/lib/Target/MSP430/MSP430.h
  vendor/llvm/dist/lib/Target/MSP430/MSP430AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430ISelLowering.h
  vendor/llvm/dist/lib/Target/MSP430/MSP430RegisterInfo.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.cpp
  vendor/llvm/dist/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Mips/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Mips/Mips.h
  vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.h
  vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16AsmPrinter.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16ISelLowering.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16ISelLowering.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16InstrInfo.td
  vendor/llvm/dist/lib/Target/PIC16/PIC16TargetMachine.cpp
  vendor/llvm/dist/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/PowerPC/CMakeLists.txt
  vendor/llvm/dist/lib/Target/PowerPC/PPC.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCCallingConv.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCFrameInfo.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCHazardRecognizers.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstr64Bit.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCJITInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCSubtarget.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.h
  vendor/llvm/dist/lib/Target/PowerPC/README.txt
  vendor/llvm/dist/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Sparc/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Sparc/Sparc.h
  vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.h
  vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.h
  vendor/llvm/dist/lib/Target/TargetELFWriterInfo.cpp
  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/CMakeLists.txt
  vendor/llvm/dist/lib/Target/X86/X86.h
  vendor/llvm/dist/lib/Target/X86/X86.td
  vendor/llvm/dist/lib/Target/X86/X86ELFWriterInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86ELFWriterInfo.h
  vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp
  vendor/llvm/dist/lib/Target/X86/X86FloatingPoint.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h
  vendor/llvm/dist/lib/Target/X86/X86InstrBuilder.h
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td
  vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.td
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.h
  vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp
  vendor/llvm/dist/lib/Target/X86/X86TargetMachine.h
  vendor/llvm/dist/lib/Target/XCore/XCore.h
  vendor/llvm/dist/lib/Target/XCore/XCoreAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.h
  vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp
  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/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/LICM.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopIndexSplit.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopRotation.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Reg2Mem.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/ScalarReplAggregates.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyCFGPass.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/TailDuplication.cpp
  vendor/llvm/dist/lib/Transforms/Utils/CMakeLists.txt
  vendor/llvm/dist/lib/Transforms/Utils/CloneModule.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopSimplify.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/CMakeLists.txt
  vendor/llvm/dist/lib/VMCore/Core.cpp
  vendor/llvm/dist/lib/VMCore/Function.cpp
  vendor/llvm/dist/lib/VMCore/Module.cpp
  vendor/llvm/dist/lib/VMCore/PassManager.cpp
  vendor/llvm/dist/lib/VMCore/Type.cpp
  vendor/llvm/dist/lib/VMCore/ValueTypes.cpp
  vendor/llvm/dist/test/CodeGen/ARM/ldr.ll
  vendor/llvm/dist/test/CodeGen/ARM/sxt_rot.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/load-global.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-adc.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-add2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-add5.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-and.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-bic.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-cmp.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-cmp2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-eor.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-mvn2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-orn.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-orr.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-rsb.ll
  vendor/llvm/dist/tools/Makefile
  vendor/llvm/dist/tools/bugpoint/BugDriver.cpp
  vendor/llvm/dist/tools/bugpoint/BugDriver.h
  vendor/llvm/dist/tools/bugpoint/CrashDebugger.cpp
  vendor/llvm/dist/tools/bugpoint/Miscompilation.cpp
  vendor/llvm/dist/tools/bugpoint/OptimizerDriver.cpp
  vendor/llvm/dist/tools/bugpoint/bugpoint.cpp
  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/llvm-ar/llvm-ar.cpp
  vendor/llvm/dist/tools/llvm-as/llvm-as.cpp
  vendor/llvm/dist/tools/llvm-db/CLIDebugger.cpp
  vendor/llvm/dist/tools/llvm-db/CLIDebugger.h
  vendor/llvm/dist/tools/llvm-db/Commands.cpp
  vendor/llvm/dist/tools/llvm-db/llvm-db.cpp
  vendor/llvm/dist/tools/llvm-dis/llvm-dis.cpp
  vendor/llvm/dist/tools/llvm-extract/llvm-extract.cpp
  vendor/llvm/dist/tools/llvm-ld/llvm-ld.cpp
  vendor/llvm/dist/tools/llvm-link/llvm-link.cpp
  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/MC-X86Specific.cpp
  vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp
  vendor/llvm/dist/tools/llvm-nm/llvm-nm.cpp
  vendor/llvm/dist/tools/llvm-prof/llvm-prof.cpp
  vendor/llvm/dist/tools/llvm-ranlib/llvm-ranlib.cpp
  vendor/llvm/dist/tools/llvmc/doc/LLVMC-Reference.rst
  vendor/llvm/dist/tools/llvmc/example/mcc16/plugins/PIC16Base/PIC16Base.td
  vendor/llvm/dist/tools/llvmc/example/mcc16/plugins/PIC16Base/PluginMain.cpp
  vendor/llvm/dist/tools/lto/LTOCodeGenerator.cpp
  vendor/llvm/dist/tools/lto/LTOCodeGenerator.h
  vendor/llvm/dist/tools/lto/LTOModule.cpp
  vendor/llvm/dist/tools/lto/LTOModule.h
  vendor/llvm/dist/tools/lto/Makefile
  vendor/llvm/dist/tools/lto/lto.cpp
  vendor/llvm/dist/tools/opt/opt.cpp
  vendor/llvm/dist/unittests/ADT/APIntTest.cpp
  vendor/llvm/dist/unittests/ExecutionEngine/JIT/JITEventListenerTest.cpp
  vendor/llvm/dist/unittests/MC/AsmStreamerTest.cpp
  vendor/llvm/dist/unittests/VMCore/Makefile
  vendor/llvm/dist/utils/NewNightlyTest.pl
  vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp
  vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.h
  vendor/llvm/dist/utils/TableGen/CallingConvEmitter.cpp
  vendor/llvm/dist/utils/TableGen/CallingConvEmitter.h
  vendor/llvm/dist/utils/TableGen/ClangDiagnosticsEmitter.cpp
  vendor/llvm/dist/utils/TableGen/ClangDiagnosticsEmitter.h
  vendor/llvm/dist/utils/TableGen/CodeEmitterGen.cpp
  vendor/llvm/dist/utils/TableGen/CodeEmitterGen.h
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h
  vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenTarget.h
  vendor/llvm/dist/utils/TableGen/DAGISelEmitter.cpp
  vendor/llvm/dist/utils/TableGen/DAGISelEmitter.h
  vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp
  vendor/llvm/dist/utils/TableGen/FastISelEmitter.h
  vendor/llvm/dist/utils/TableGen/InstrEnumEmitter.cpp
  vendor/llvm/dist/utils/TableGen/InstrEnumEmitter.h
  vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.cpp
  vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.h
  vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp
  vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.h
  vendor/llvm/dist/utils/TableGen/LLVMCConfigurationEmitter.cpp
  vendor/llvm/dist/utils/TableGen/LLVMCConfigurationEmitter.h
  vendor/llvm/dist/utils/TableGen/Record.cpp
  vendor/llvm/dist/utils/TableGen/Record.h
  vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp
  vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.h
  vendor/llvm/dist/utils/TableGen/SubtargetEmitter.cpp
  vendor/llvm/dist/utils/TableGen/SubtargetEmitter.h
  vendor/llvm/dist/utils/TableGen/TGLexer.cpp
  vendor/llvm/dist/utils/TableGen/TGParser.cpp
  vendor/llvm/dist/utils/TableGen/TGValueTypes.cpp
  vendor/llvm/dist/utils/TableGen/TableGen.cpp
  vendor/llvm/dist/utils/TableGen/TableGenBackend.cpp
  vendor/llvm/dist/utils/TableGen/TableGenBackend.h

Modified: vendor/llvm/dist/Makefile.config.in
==============================================================================
--- vendor/llvm/dist/Makefile.config.in	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/Makefile.config.in	Sat Jul  4 13:58:26 2009	(r195340)
@@ -223,7 +223,7 @@ RDYNAMIC := @RDYNAMIC@
 #ENABLE_PROFILING = 1
 @ENABLE_PROFILING@
 
-# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will 
+# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will
 # exclude assertion checks, otherwise they are included.
 #DISABLE_ASSERTIONS = 1
 @DISABLE_ASSERTIONS@
@@ -297,3 +297,14 @@ endif
 
 # Location of the plugin header file for gold.
 BINUTILS_INCDIR := @BINUTILS_INCDIR@
+
+# When ENABLE_LLVMC_DYNAMIC is enabled, LLVMC will link libCompilerDriver
+# dynamically. This is needed to make dynamic plugins work on some targets
+# (Windows).
+ENABLE_LLVMC_DYNAMIC = 0
+#@ENABLE_LLVMC_DYNAMIC@
+
+# When ENABLE_LLVMC_DYNAMIC_PLUGINS is enabled, LLVMC will have dynamic plugin
+# support (via the -load option).
+ENABLE_LLVMC_DYNAMIC_PLUGINS = 1
+#@ENABLE_LLVMC_DYNAMIC_PLUGINS@

Modified: vendor/llvm/dist/Makefile.rules
==============================================================================
--- vendor/llvm/dist/Makefile.rules	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/Makefile.rules	Sat Jul  4 13:58:26 2009	(r195340)
@@ -201,15 +201,19 @@ LIBRARYNAME := $(patsubst %,plugin_llvmc
 CPP.Flags += -DLLVMC_PLUGIN_NAME=$(LLVMC_PLUGIN)
 REQUIRES_EH := 1
 
+ifeq ($(ENABLE_LLVMC_DYNAMIC),1)
+  LD.Flags += -lCompilerDriver
+endif
+
 # Build a dynamic library if the user runs `make` directly from the plugin
 # directory.
 ifndef LLVMC_BUILTIN_PLUGIN
-LOADABLE_MODULE = 1
+  LOADABLE_MODULE = 1
 endif
 
 # TableGen stuff...
 ifneq ($(BUILT_SOURCES),)
-LLVMC_BUILD_AUTOGENERATED_INC=1
+  LLVMC_BUILD_AUTOGENERATED_INC=1
 endif
 
 endif # LLVMC_PLUGIN
@@ -217,10 +221,16 @@ endif # LLVMC_PLUGIN
 ifdef LLVMC_BASED_DRIVER
 
 TOOLNAME = $(LLVMC_BASED_DRIVER)
-LLVMLIBS = CompilerDriver.a
-LINK_COMPONENTS = support system
+
 REQUIRES_EH := 1
 
+ifeq ($(ENABLE_LLVMC_DYNAMIC),1)
+  LD.Flags += -lCompilerDriver
+else
+  LLVMLIBS = CompilerDriver.a
+  LINK_COMPONENTS = support system
+endif
+
 # Preprocessor magic that generates references to static variables in built-in
 # plugins.
 ifneq ($(LLVMC_BUILTIN_PLUGINS),)
@@ -502,8 +512,7 @@ ifeq ($(OS),Darwin)
 else
   ifeq ($(OS),Cygwin)
     SharedLinkOptions=-shared -nostdlib -Wl,--export-all-symbols \
-                      -Wl,--enable-auto-import -Wl,--enable-auto-image-base \
-                      -Wl,--enable-runtime-pseudo-relocs
+                      -Wl,--enable-auto-import -Wl,--enable-auto-image-base
   else
     SharedLinkOptions=-shared
   endif

Modified: vendor/llvm/dist/autoconf/configure.ac
==============================================================================
--- vendor/llvm/dist/autoconf/configure.ac	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/autoconf/configure.ac	Sat Jul  4 13:58:26 2009	(r195340)
@@ -240,7 +240,7 @@ case "$llvm_cv_target_arch" in
     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)
 
@@ -453,7 +453,7 @@ for a_target in $TARGETS_TO_BUILD; do
   fi
 done
 
-# Build the LLVM_TARGET and LLVM_ASM_PRINTER macro uses for 
+# Build the LLVM_TARGET and LLVM_ASM_PRINTER macro uses for
 # Targets.def and AsmPrinters.def.
 LLVM_ENUM_TARGETS=""
 LLVM_ENUM_ASM_PRINTERS=""
@@ -593,6 +593,35 @@ case "$enableval" in
   *) AC_MSG_ERROR([Invalid setting for --enable-libffi. Use "yes" or "no"]) ;;
 esac
 
+dnl Only Windows needs dynamic libCompilerDriver to support plugins.
+if test "$llvm_cv_os_type" = "Win32" ; then
+   llvmc_dynamic="yes"
+else
+   llvmc_dynamic="no"
+fi
+
+dnl --enable-llvmc-dynamic : should LLVMC link libCompilerDriver dynamically?
+AC_ARG_ENABLE(llvmc-dynamic,AS_HELP_STRING(
+--enable-llvmc-dynamic,
+[Link LLVMC dynamically (default is NO, unless on Win32)]),,
+enableval=$llvmc_dynamic)
+if test ${enableval} = "yes" && test "$ENABLE_PIC" -eq 1 ; then
+   AC_SUBST(ENABLE_LLVMC_DYNAMIC,[[ENABLE_LLVMC_DYNAMIC=1]])
+else
+   AC_SUBST(ENABLE_LLVMC_DYNAMIC,[[]])
+fi
+
+dnl --enable-llvmc-dynamic-plugins : should LLVMC support dynamic plugins?
+AC_ARG_ENABLE(llvmc-dynamic-plugins,AS_HELP_STRING(
+--enable-llvmc-dynamic-plugins,
+[Enable dynamic LLVMC plugins (default is YES)]),,
+enableval=yes)
+if test ${enableval} = "yes" ; then
+   AC_SUBST(ENABLE_LLVMC_DYNAMIC_PLUGINS,[[ENABLE_LLVMC_DYNAMIC_PLUGINS=1]])
+else
+   AC_SUBST(ENABLE_LLVMC_DYNAMIC_PLUGINS,[[]])
+fi
+
 dnl===-----------------------------------------------------------------------===
 dnl===
 dnl=== SECTION 4: Check for programs we need and that they are the right version
@@ -914,7 +943,8 @@ AC_CHECK_FUNCS([backtrace ceilf floorf r
 AC_CHECK_FUNCS([powf fmodf strtof round ])
 AC_CHECK_FUNCS([getpagesize getrusage getrlimit setrlimit gettimeofday ])
 AC_CHECK_FUNCS([isatty mkdtemp mkstemp ])
-AC_CHECK_FUNCS([mktemp realpath sbrk setrlimit strdup strerror strerror_r ])
+AC_CHECK_FUNCS([mktemp realpath sbrk setrlimit strdup ])
+AC_CHECK_FUNCS([strerror strerror_r strerror_s ])
 AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ])
 AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp])
 AC_C_PRINTF_A
@@ -951,7 +981,7 @@ dnl atomic builtins are required for thr
 AC_MSG_CHECKING(for GCC atomic builtins)
 AC_LINK_IFELSE(
   AC_LANG_SOURCE(
-    [[int main() { 
+    [[int main() {
         volatile unsigned long val = 1;
         __sync_synchronize();
         __sync_val_compare_and_swap(&val, 1, 0);

Modified: vendor/llvm/dist/cmake/config-ix.cmake
==============================================================================
--- vendor/llvm/dist/cmake/config-ix.cmake	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/cmake/config-ix.cmake	Sat Jul  4 13:58:26 2009	(r195340)
@@ -44,6 +44,8 @@ check_include_file(windows.h HAVE_WINDOW
 # library checks
 include(CheckLibraryExists)
 check_library_exists(pthread pthread_create "" HAVE_LIBPTHREAD)
+check_library_exists(pthread pthread_getspecific "" HAVE_PTHREAD_GETSPECIFIC)
+check_library_exists(pthread pthread_rwlock_init "" HAVE_PTHREAD_RWLOCK_INIT)
 check_library_exists(dl dlopen "" HAVE_LIBDL)
 
 # function checks
@@ -64,9 +66,10 @@ check_symbol_exists(mallinfo malloc.h HA
 check_symbol_exists(malloc_zone_statistics malloc/malloc.h
                     HAVE_MALLOC_ZONE_STATISTICS)
 check_symbol_exists(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK)
-check_symbol_exists(pthread_rwlock_init pthread.h HAVE_PTHREAD_RWLOCK_INIT)
-check_symbol_exists(pthread_getspecific pthread.h HAVE_PTHREAD_GETSPECIFIC)
 check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL)
+check_symbol_exists(strerror string.h HAVE_STRERROR)
+check_symbol_exists(strerror_r string.h HAVE_STRERROR_R)
+check_symbol_exists(strerror_s string.h HAVE_STRERROR_S)
 
 check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC)
 if( LLVM_USING_GLIBC )

Modified: vendor/llvm/dist/configure
==============================================================================
--- vendor/llvm/dist/configure	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/configure	Sat Jul  4 13:58:26 2009	(r195340)
@@ -31356,9 +31356,119 @@ done
 
 
 
+for ac_func in mktemp realpath sbrk setrlimit strdup
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* 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 $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+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
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
 
 
-for ac_func in mktemp realpath sbrk setrlimit strdup strerror strerror_r
+for ac_func in strerror strerror_r strerror_s
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 { echo "$as_me:$LINENO: checking for $ac_func" >&5

Modified: vendor/llvm/dist/docs/CodingStandards.html
==============================================================================
--- vendor/llvm/dist/docs/CodingStandards.html	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/docs/CodingStandards.html	Sat Jul  4 13:58:26 2009	(r195340)
@@ -50,6 +50,8 @@
           <li><a href="#ll_ns_std">Do not use 'using namespace std'</a></li>
           <li><a href="#ll_virtual_anch">Provide a virtual method anchor for
               classes in headers</a></li>
+          <li><a href="#ll_end">Don't evaluate end() every time through a
+              loop</a></li>
           <li><a href="#ll_preincrement">Prefer Preincrement</a></li>
           <li><a href="#ll_avoidendl">Avoid <tt>std::endl</tt></a></li>
         </ol></li>
@@ -661,6 +663,67 @@ increasing link times.</p>
 
 </div>
 
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">
+  <a name="ll_end">Don't evaluate end() every time through a loop</a>
+</div>
+
+<div class="doc_text">
+
+<p>Because C++ doesn't have a standard "foreach" loop (though it can be emulated
+with macros and may be coming in C++'0x) we end up writing a lot of loops that
+manually iterate from begin to end on a variety of containers or through other
+data structures.  One common mistake is to write a loop in this style:</p>
+
+<div class="doc_code">
+<pre>
+  BasicBlock *BB = ...
+  for (BasicBlock::iterator I = BB->begin(); I != <b>BB->end()</b>; ++I)
+     ... use I ...
+</pre>
+</div>
+
+<p>The problem with this construct is that it evaluates "<tt>BB->end()</tt>"
+every time through the loop.  Instead of writing the loop like this, we strongly
+prefer loops to be written so that they evaluate it once before the loop starts.
+A convenient way to do this is like so:</p>
+
+<div class="doc_code">
+<pre>
+  BasicBlock *BB = ...
+  for (BasicBlock::iterator I = BB->begin(), E = <b>BB->end()</b>; I != E; ++I)
+     ... use I ...
+</pre>
+</div>
+
+<p>The observant may quickly point out that these two loops may have different
+semantics: if the container (a basic block in this case) is being mutated, then
+"<tt>BB->end()</tt>" may change its value every time through the loop and the
+second loop may not in fact be correct.  If you actually do depend on this
+behavior, please write the loop in the first form and add a comment indicating
+that you did it intentionally.</p>
+
+<p>Why do we prefer the second form (when correct)?  Writing the loop in the
+first form has two problems: First it may be less efficient than evaluating it
+at the start of the loop.  In this case, the cost is probably minor: a few extra
+loads every time through the loop.  However, if the base expression is more
+complex, then the cost can rise quickly.  I've seen loops where the end
+expression was actually something like: "<tt>SomeMap[x]->end()</tt>" and map
+lookups really aren't cheap.  By writing it in the second form consistently, you
+eliminate the issue entirely and don't even have to think about it.</p>
+
+<p>The second (even bigger) issue is that writing the loop in the first form
+hints to the reader that the loop is mutating the container (a fact that a
+comment would handily confirm!).  If you write the loop in the second form, it
+is immediately obvious without even looking at the body of the loop that the
+container isn't being modified, which makes it easier to read the code and
+understand what it does.</p>
+
+<p>While the second form of the loop is a few extra keystrokes, we do strongly
+prefer it.</p>
+
+</div>
+
 
 <!-- _______________________________________________________________________ -->
 <div class="doc_subsubsection">
@@ -744,7 +807,7 @@ something.</p>
 
   <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-03-23 05:53:34 +0100 (Mon, 23 Mar 2009) $
+  Last modified: $Date: 2009-06-30 08:27:54 +0200 (Tue, 30 Jun 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/CompilerDriver.html
==============================================================================
--- vendor/llvm/dist/docs/CompilerDriver.html	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/docs/CompilerDriver.html	Sat Jul  4 13:58:26 2009	(r195340)
@@ -37,6 +37,7 @@ The ReST source lives in the directory '
 <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>
+<li><a class="reference internal" href="#conditioning-on-the-executable-name" id="id20">Conditioning on the executable name</a></li>
 </ul>
 </li>
 </ul>
@@ -94,9 +95,8 @@ $ llvmc --linker=c++ hello.o
 $ ./a.out
 hello
 </pre>
-<p>By default, LLVMC uses <tt class="docutils literal"><span class="pre">llvm-gcc</span></tt> to compile the source code. It is
-also possible to choose the work-in-progress <tt class="docutils literal"><span class="pre">clang</span></tt> compiler with
-the <tt class="docutils literal"><span class="pre">-clang</span></tt> option.</p>
+<p>By default, LLVMC uses <tt class="docutils literal"><span class="pre">llvm-gcc</span></tt> to compile the source code. It is also
+possible to choose the <tt class="docutils literal"><span class="pre">clang</span></tt> compiler with the <tt class="docutils literal"><span class="pre">-clang</span></tt> option.</p>
 </div>
 <div class="section" id="predefined-options">
 <h1><a class="toc-backref" href="#id6">Predefined options</a></h1>
@@ -633,6 +633,27 @@ be performed at compile-time because the
 dynamically. When invoked with <tt class="docutils literal"><span class="pre">--check-graph</span></tt>, <tt class="docutils literal"><span class="pre">llvmc</span></tt> doesn't
 perform any compilation tasks and returns the number of encountered
 errors as its status code.</p>
+</div>
+<div class="section" id="conditioning-on-the-executable-name">
+<h2><a class="toc-backref" href="#id20">Conditioning on the executable name</a></h2>
+<p>For now, the executable name (the value passed to the driver in <tt class="docutils literal"><span class="pre">argv[0]</span></tt>) is
+accessible only in the C++ code (i.e. hooks). Use the following code:</p>
+<pre class="literal-block">
+namespace llvmc {
+extern const char* ProgramName;
+}
+
+std::string MyHook() {
+//...
+if (strcmp(ProgramName, &quot;mydriver&quot;) == 0) {
+   //...
+
+}
+</pre>
+<p>In general, you're encouraged not to make the behaviour dependent on the
+executable file name, and use command-line switches instead. See for example how
+the <tt class="docutils literal"><span class="pre">Base</span></tt> plugin behaves when it needs to choose the correct linker options
+(think <tt class="docutils literal"><span class="pre">g++</span></tt> vs. <tt class="docutils literal"><span class="pre">gcc</span></tt>).</p>
 <hr />
 <address>
 <a href="http://jigsaw.w3.org/css-validator/check/referer">;
@@ -645,7 +666,7 @@ errors as its status code.</p>
 <a href="mailto:foldr@codedgers.com">Mikhail Glushenkov</a><br />
 <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br />
 
-Last modified: $Date: 2009-06-25 20:21:10 +0200 (Thu, 25 Jun 2009) $
+Last modified: $Date: 2009-06-30 02:16:43 +0200 (Tue, 30 Jun 2009) $
 </address></div>
 </div>
 </div>

Modified: vendor/llvm/dist/docs/FAQ.html
==============================================================================
--- vendor/llvm/dist/docs/FAQ.html	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/docs/FAQ.html	Sat Jul  4 13:58:26 2009	(r195340)
@@ -124,6 +124,10 @@
 
      <li><a href="#undef">What is this "<tt>undef</tt>" thing that shows up in
          my code?</a></li>
+         
+      <li><a href="#callconvwrong">Why does instcombine + simplifycfg turn
+   a call to a function with a mismatched calling convention into "unreachable"?
+   Why not make the verifier reject it?</a></li>
   </ol>
   </li>
 </ol>
@@ -780,6 +784,143 @@ int X() { int i; return i; }
    value specified for it.</p>
 </div>
 
+<!--=========================================================================-->
+
+<div class="question">
+<p><a name="callconvwrong">Why does instcombine + simplifycfg turn
+   a call to a function with a mismatched calling convention into "unreachable"?
+   Why not make the verifier reject it?</a></p>
+</div>
+
+<div class="answer">
+<p>This is a common problem run into by authors of front-ends that are using
+custom calling conventions: you need to make sure to set the right calling
+convention on both the function and on each call to the function.  For example,
+this code:</p>
+
+<pre class="doc_code">
+define fastcc void @foo() {
+        ret void
+}
+define void @bar() {
+        call void @foo( )
+        ret void
+}
+</pre>
+
+<p>Is optimized to:</p>
+
+<pre class="doc_code">
+define fastcc void @foo() {
+	ret void
+}
+define void @bar() {
+	unreachable
+}
+</pre>
+
+<p>... with "opt -instcombine -simplifycfg".  This often bites people because
+"all their code disappears".  Setting the calling convention on the caller and
+callee is required for indirect calls to work, so people often ask why not make
+the verifier reject this sort of thing.</p>
+
+<p>The answer is that this code has undefined behavior, but it is not illegal.
+If we made it illegal, then every transformation that could potentially create
+this would have to ensure that it doesn't, and there is valid code that can
+create this sort of construct (in dead code).  The sorts of things that can
+cause this to happen are fairly contrived, but we still need to accept them.
+Here's an example:</p>
+
+<pre class="doc_code">
+define fastcc void @foo() {
+        ret void
+}
+define internal void @bar(void()* %FP, i1 %cond) {
+        br i1 %cond, label %T, label %F
+T:  
+        call void %FP()
+        ret void
+F:
+        call fastcc void %FP()
+        ret void
+}
+define void @test() {
+        %X = or i1 false, false
+        call void @bar(void()* @foo, i1 %X)
+        ret void
+} 
+</pre>
+
+<p>In this example, "test" always passes @foo/false into bar, which ensures that
+   it is dynamically called with the right calling conv (thus, the code is
+   perfectly well defined).  If you run this through the inliner, you get this
+   (the explicit "or" is there so that the inliner doesn't dead code eliminate
+   a bunch of stuff):
+</p>
+
+<pre class="doc_code">
+define fastcc void @foo() {
+	ret void
+}
+define void @test() {
+	%X = or i1 false, false
+	br i1 %X, label %T.i, label %F.i
+T.i:
+	call void @foo()
+	br label %bar.exit
+F.i:
+	call fastcc void @foo()
+	br label %bar.exit
+bar.exit:
+	ret void
+}
+</pre>
+
+<p>Here you can see that the inlining pass made an undefined call to @foo with
+  the wrong calling convention.  We really don't want to make the inliner have
+  to know about this sort of thing, so it needs to be valid code.  In this case,
+  dead code elimination can trivially remove the undefined code.  However, if %X
+  was an input argument to @test, the inliner would produce this:
+</p>
+
+<pre class="doc_code">
+define fastcc void @foo() {
+	ret void
+}
+
+define void @test(i1 %X) {
+	br i1 %X, label %T.i, label %F.i
+T.i:
+	call void @foo()
+	br label %bar.exit
+F.i:
+	call fastcc void @foo()
+	br label %bar.exit
+bar.exit:
+	ret void
+}
+</pre>
+
+<p>The interesting thing about this is that %X <em>must</em> be false for the
+code to be well-defined, but no amount of dead code elimination will be able to
+delete the broken call as unreachable.  However, since instcombine/simplifycfg
+turns the undefined call into unreachable, we end up with a branch on a
+condition that goes to unreachable: a branch to unreachable can never happen, so
+"-inline -instcombine -simplifycfg" is able to produce:</p>
+
+<pre class="doc_code">
+define fastcc void @foo() {
+	ret void
+}
+define void @test(i1 %X) {
+F.i:
+	call fastcc void @foo()
+	ret void
+}
+</pre>
+
+</div>
+
 <!-- *********************************************************************** -->
 
 <hr>
@@ -790,7 +931,7 @@ int X() { int i; return i; }
   src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
 
   <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-04-10 22:48:27 +0200 (Fri, 10 Apr 2009) $
+  Last modified: $Date: 2009-06-30 19:10:19 +0200 (Tue, 30 Jun 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/ReleaseNotes-2.6.html
==============================================================================
--- vendor/llvm/dist/docs/ReleaseNotes-2.6.html	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/docs/ReleaseNotes-2.6.html	Sat Jul  4 13:58:26 2009	(r195340)
@@ -419,7 +419,7 @@ it run faster:</p>
 <div class="doc_text">
 
 <p>If you're already an LLVM user or developer with out-of-tree changes based
-on LLVM 2.4, this section lists some "gotchas" that you may run into upgrading
+on LLVM 2.5, this section lists some "gotchas" that you may run into upgrading
 from the previous release.</p>
 
 <ul>
@@ -433,6 +433,13 @@ from the previous release.</p>
 API changes are:</p>
 
 <ul>
+<li>LLVM's global uniquing tables for <tt>Type</tt>s and <tt>Constant</tt>s have
+    been privatized into members of an <tt>LLVMContext</tt>.  A number of APIs
+    now take an <tt>LLVMContext</tt> as a parameter.  To smooth the transition
+    for clients that will only ever use a single context, the new 
+    <tt>getGlobalContext()</tt> API can be used to access a default global 
+    context which can be passed in any and all cases where a context is 
+    required.
 <li>The <tt>getABITypeSize</tt> methods are now called <tt>getAllocSize</tt>.</li>
 </ul>
 
@@ -770,7 +777,7 @@ lists</a>.</p>
   src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
 
   <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-06-24 23:26:42 +0200 (Wed, 24 Jun 2009) $
+  Last modified: $Date: 2009-07-02 18:48:38 +0200 (Thu, 02 Jul 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/TableGenFundamentals.html
==============================================================================
--- vendor/llvm/dist/docs/TableGenFundamentals.html	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/docs/TableGenFundamentals.html	Sat Jul  4 13:58:26 2009	(r195340)
@@ -411,7 +411,8 @@ which case the user must specify it expl
 <dt><tt>!cast<type>(a)</tt></dt>
   <dd>A symbol of type <em>type</em> obtained by looking up the string 'a' in
 the symbol table.  If the type of 'a' does not match <em>type</em>, TableGen
-aborts with an error. </dd>
+aborts with an error. !cast<string> is a special case in that the argument must
+be an object defined by a 'def' construct.</dd>
 <dt><tt>!nameconcat&lt;type&gt;(a, b)</tt></dt>
   <dd>Shorthand for !cast<type>(!strconcat(a, b))</dd>
 <dt><tt>!subst(a, b, c)</tt></dt>
@@ -781,7 +782,7 @@ This should highlight the APIs in <tt>Ta
 
   <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-06-09 20:31:17 +0200 (Tue, 09 Jun 2009) $
+  Last modified: $Date: 2009-06-29 22:05:29 +0200 (Mon, 29 Jun 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/WritingAnLLVMPass.html
==============================================================================
--- vendor/llvm/dist/docs/WritingAnLLVMPass.html	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/docs/WritingAnLLVMPass.html	Sat Jul  4 13:58:26 2009	(r195340)
@@ -491,10 +491,15 @@ class is the most general of all supercl
 <tt>ModulePass</tt> indicates that your pass uses the entire program as a unit,
 refering to function bodies in no predictable order, or adding and removing
 functions.  Because nothing is known about the behavior of <tt>ModulePass</tt>
-subclasses, no optimization can be done for their execution. A module pass
-can use function level passes (e.g. dominators) using getAnalysis interface
-<tt> getAnalysis&lt;DominatorTree&gt;(Function)</tt>, if the function pass
-does not require any module passes. </p> 
+subclasses, no optimization can be done for their execution.</p>
+
+<p>A module pass can use function level passes (e.g. dominators) using
+the getAnalysis interface
+<tt>getAnalysis&lt;DominatorTree&gt;(llvm::Function *)</tt> to provide the
+function to retrieve analysis result for, if the function pass does not require
+any module passes. Note that this can only be done for functions for which the
+analysis ran, e.g. in the case of dominators you should only ask for the
+DominatorTree for function definitions, not declarations.</p>
 
 <p>To write a correct <tt>ModulePass</tt> subclass, derive from
 <tt>ModulePass</tt> and overload the <tt>runOnModule</tt> method with the
@@ -1821,7 +1826,7 @@ Despite that, we have kept the LLVM pass
 
   <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2009-06-15 18:22:49 +0000 (Mon, 15 Jun 2009) $
+  Last modified: $Date: 2009-07-02 01:38:44 +0200 (Thu, 02 Jul 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/examples/BrainF/BrainF.cpp
==============================================================================
--- vendor/llvm/dist/examples/BrainF/BrainF.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/BrainF/BrainF.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -36,19 +36,20 @@ const char *BrainF::headreg = "head";
 const char *BrainF::label   = "brainf";
 const char *BrainF::testreg = "test";
 
-Module *BrainF::parse(std::istream *in1, int mem, CompileFlags cf) {
+Module *BrainF::parse(std::istream *in1, int mem, CompileFlags cf,
+                      LLVMContext& Context) {
   in       = in1;
   memtotal = mem;
   comflag  = cf;
 
-  header();
+  header(Context);
   readloop(0, 0, 0);
   delete builder;
   return module;
 }
 
-void BrainF::header() {
-  module = new Module("BrainF");
+void BrainF::header(LLVMContext& C) {
+  module = new Module("BrainF", C);
 
   //Function prototypes
 

Modified: vendor/llvm/dist/examples/BrainF/BrainF.h
==============================================================================
--- vendor/llvm/dist/examples/BrainF/BrainF.h	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/BrainF/BrainF.h	Sat Jul  4 13:58:26 2009	(r195340)
@@ -15,6 +15,7 @@
 #ifndef BRAINF_H
 #define BRAINF_H
 
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/Support/IRBuilder.h"
 
@@ -38,7 +39,8 @@ class BrainF {
     /// containing the resulting code.
     /// On error, it calls abort.
     /// The caller must delete the returned module.
-    Module *parse(std::istream *in1, int mem, CompileFlags cf);
+    Module *parse(std::istream *in1, int mem, CompileFlags cf,
+                  LLVMContext& C);
 
   protected:
     /// The different symbols in the BrainF language
@@ -64,7 +66,7 @@ class BrainF {
     static const char *testreg;
 
     /// Put the brainf function preamble and other fixed pieces of code
-    void header();
+    void header(LLVMContext& C);
 
     /// The main loop for parsing.  It calls itself recursively
     /// to handle the depth of nesting of "[]".

Modified: vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp
==============================================================================
--- vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/BrainF/BrainFDriver.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -86,6 +86,8 @@ void addMainFunction(Module *mod) {
 int main(int argc, char **argv) {
   cl::ParseCommandLineOptions(argc, argv, " BrainF compiler\n");
 
+  LLVMContext Context;
+
   if (InputFilename == "") {
     std::cerr<<"Error: You must specify the filename of the program to "
     "be compiled.  Use --help to see the options.\n";
@@ -124,7 +126,7 @@ int main(int argc, char **argv) {
 
   //Read the BrainF program
   BrainF bf;
-  Module *mod = bf.parse(in, 65536, cf); //64 KiB
+  Module *mod = bf.parse(in, 65536, cf, Context); //64 KiB
   if (in != &std::cin) {delete in;}
   addMainFunction(mod);
 

Modified: vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp
==============================================================================
--- vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/Fibonacci/fibonacci.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -23,6 +23,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Constants.h"
@@ -90,8 +91,10 @@ static Function *CreateFibFunction(Modul
 int main(int argc, char **argv) {
   int n = argc > 1 ? atol(argv[1]) : 24;
 
+  LLVMContext Context;
+  
   // Create some module to put our function into it.
-  Module *M = new Module("test");
+  Module *M = new Module("test", Context);
 
   // We are about to create the "fib" function:
   Function *FibF = CreateFibFunction(M);

Modified: vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp
==============================================================================
--- vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/HowToUseJIT/HowToUseJIT.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -34,6 +34,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
@@ -50,9 +51,11 @@ using namespace llvm;
 int main() {
   
   InitializeNativeTarget();
+
+  LLVMContext Context;
   
   // Create some module to put our function into it.
-  Module *M = new Module("test");
+  Module *M = new Module("test", Context);
 
   // Create the add1 function entry and insert this entry into module M.  The
   // function will have a return type of "int" and take an argument of "int".

Modified: vendor/llvm/dist/examples/Kaleidoscope/toy.cpp
==============================================================================
--- vendor/llvm/dist/examples/Kaleidoscope/toy.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/Kaleidoscope/toy.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -1,5 +1,6 @@
 #include "llvm/DerivedTypes.h"
 #include "llvm/ExecutionEngine/ExecutionEngine.h"
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/ModuleProvider.h"
 #include "llvm/PassManager.h"
@@ -1083,6 +1084,7 @@ double printd(double X) {
 
 int main() {
   InitializeNativeTarget();
+  LLVMContext Context;
   
   // Install standard binary operators.
   // 1 is lowest precedence.
@@ -1097,7 +1099,7 @@ int main() {
   getNextToken();
 
   // Make the module, which holds all the code.
-  TheModule = new Module("my cool jit");
+  TheModule = new Module("my cool jit", Context);
   
   // Create the JIT.
   TheExecutionEngine = ExecutionEngine::create(TheModule);

Modified: vendor/llvm/dist/examples/ModuleMaker/ModuleMaker.cpp
==============================================================================
--- vendor/llvm/dist/examples/ModuleMaker/ModuleMaker.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/ModuleMaker/ModuleMaker.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -13,6 +13,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Constants.h"
@@ -22,13 +23,14 @@
 using namespace llvm;
 
 int main() {
+  LLVMContext Context;
+
   // Create the "module" or "program" or "translation unit" to hold the
   // function
-  Module *M = new Module("test");
+  Module *M = new Module("test", Context);
 
   // Create the main function: first create the type 'int ()'
-  FunctionType *FT = FunctionType::get(Type::Int32Ty, std::vector<const Type*>(),
-                                       /*not vararg*/false);
+  FunctionType *FT = FunctionType::get(Type::Int32Ty, /*not vararg*/false);
 
   // By passing a module as the last parameter to the Function constructor,
   // it automatically gets appended to the Module.

Modified: vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp
==============================================================================
--- vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/examples/ParallelJIT/ParallelJIT.cpp	Sat Jul  4 13:58:26 2009	(r195340)
@@ -18,6 +18,7 @@
 // same time). This test had assertion errors until I got the locking right.
 
 #include <pthread.h>
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
@@ -232,9 +233,10 @@ void* callFunc( void* param )
 
 int main() {
   InitializeNativeTarget();
+  LLVMContext Context;
 
   // Create some module to put our function into it.
-  Module *M = new Module("test");
+  Module *M = new Module("test", Context);
 
   Function* add1F = createAdd1( M );
   Function* fibF = CreateFibFunction( M );

Modified: vendor/llvm/dist/include/llvm-c/BitReader.h
==============================================================================
--- vendor/llvm/dist/include/llvm-c/BitReader.h	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/include/llvm-c/BitReader.h	Sat Jul  4 13:58:26 2009	(r195340)
@@ -32,6 +32,10 @@ extern "C" {
 int LLVMParseBitcode(LLVMMemoryBufferRef MemBuf,
                      LLVMModuleRef *OutModule, char **OutMessage);
 
+int LLVMParseBitcodeInContext(LLVMMemoryBufferRef MemBuf,
+                              LLVMContextRef ContextRef,
+                              LLVMModuleRef *OutModule, char **OutMessage);
+
 /* Reads a module from the specified path, returning via the OutMP parameter
    a module provider which performs lazy deserialization. Returns 0 on success.
    Optionally returns a human-readable error message via OutMessage. */ 
@@ -39,6 +43,11 @@ int LLVMGetBitcodeModuleProvider(LLVMMem
                                  LLVMModuleProviderRef *OutMP,
                                  char **OutMessage);
 
+int LLVMGetBitcodeModuleProviderInContext(LLVMMemoryBufferRef MemBuf,
+                                          LLVMContextRef ContextRef,
+                                          LLVMModuleProviderRef *OutMP,
+                                          char **OutMessage);
+
 
 #ifdef __cplusplus
 }

Modified: vendor/llvm/dist/include/llvm-c/Core.h
==============================================================================
--- vendor/llvm/dist/include/llvm-c/Core.h	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/include/llvm-c/Core.h	Sat Jul  4 13:58:26 2009	(r195340)
@@ -47,6 +47,11 @@ extern "C" {
 /* Opaque types. */
 
 /**
+ * The top-level container for all LLVM global data.  See the LLVMContext class.
+ */
+typedef struct LLVMCtxt *LLVMContextRef;
+
+/**
  * The top-level container for all other LLVM Intermediate Representation (IR)
  * objects. See the llvm::Module class.
  */
@@ -188,9 +193,16 @@ void LLVMDisposeMessage(char *Message);
 
 /*===-- Modules -----------------------------------------------------------===*/
 
+/* Create and destroy contexts. */
+LLVMContextRef LLVMContextCreate();
+LLVMContextRef LLVMGetGlobalContext();
+void LLVMContextDispose(LLVMContextRef C);
+
 /* Create and destroy modules. */ 
 /** See llvm::Module::Module. */
 LLVMModuleRef LLVMModuleCreateWithName(const char *ModuleID);
+LLVMModuleRef LLVMModuleCreateWithNameInContext(const char *ModuleID,
+                                                LLVMContextRef C);
 
 /** See llvm::Module::~Module. */
 void LLVMDisposeModule(LLVMModuleRef M);
@@ -815,6 +827,7 @@ namespace llvm {
   DEFINE_SIMPLE_CONVERSION_FUNCTIONS(PATypeHolder,       LLVMTypeHandleRef    )
   DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ModuleProvider,     LLVMModuleProviderRef)
   DEFINE_SIMPLE_CONVERSION_FUNCTIONS(MemoryBuffer,       LLVMMemoryBufferRef  )
+  DEFINE_SIMPLE_CONVERSION_FUNCTIONS(LLVMContext,        LLVMContextRef       )
   DEFINE_STDCXX_CONVERSION_FUNCTIONS(PassManagerBase,    LLVMPassManagerRef   )
   
   #undef DEFINE_STDCXX_CONVERSION_FUNCTIONS

Modified: vendor/llvm/dist/include/llvm-c/lto.h
==============================================================================
--- vendor/llvm/dist/include/llvm-c/lto.h	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/include/llvm-c/lto.h	Sat Jul  4 13:58:26 2009	(r195340)
@@ -16,6 +16,7 @@
 #ifndef LTO_H
 #define LTO_H  1
 
+#include "llvm-c/Core.h"
 #include <stdbool.h>
 #include <stddef.h>
 
@@ -58,7 +59,6 @@ typedef struct LTOModule*         lto_mo
 /** opaque reference to a code generator */
 typedef struct LTOCodeGenerator*  lto_code_gen_t;
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -76,7 +76,6 @@ lto_get_version(void);
 extern const char*
 lto_get_error_message(void);
 
-
 /**
  * Checks if a file is a loadable object file.
  */

Modified: vendor/llvm/dist/include/llvm/ADT/APInt.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/APInt.h	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/include/llvm/ADT/APInt.h	Sat Jul  4 13:58:26 2009	(r195340)
@@ -1426,6 +1426,8 @@ inline raw_ostream &operator<<(raw_ostre
   return OS;
 }
 
+std::ostream &operator<<(std::ostream &o, const APInt &I);
+
 namespace APIntOps {
 
 /// @brief Determine the smaller of two APInts considered to be signed.

Modified: vendor/llvm/dist/include/llvm/ADT/FoldingSet.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/FoldingSet.h	Sat Jul  4 11:11:21 2009	(r195339)
+++ vendor/llvm/dist/include/llvm/ADT/FoldingSet.h	Sat Jul  4 13:58:26 2009	(r195340)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907041358.n64DwQFg014366>