svn commit: r195340 - in vendor/llvm/dist: . autoconf cmake docs
examples/BrainF examples/Fibonacci examples/HowToUseJIT
examples/Kaleidoscope examples/ModuleMaker
examples/ParallelJIT include/llvm...
Ed Schouten
ed at FreeBSD.org
Sat Jul 4 13:58:27 UTC 2009
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 at 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, "mydriver") == 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 at 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<type>(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 at 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<DominatorTree>(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<DominatorTree>(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 at 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 ***
More information about the svn-src-vendor
mailing list