svn commit: r206083 - in vendor/llvm/dist: . autoconf docs docs/tutorial examples/OCaml-Kaleidoscope/Chapter6 examples/OCaml-Kaleidoscope/Chapter7 include/llvm include/llvm/ADT include/llvm/Analysi...

Roman Divacky rdivacky at FreeBSD.org
Fri Apr 2 08:54:31 UTC 2010


Author: rdivacky
Date: Fri Apr  2 08:54:30 2010
New Revision: 206083
URL: http://svn.freebsd.org/changeset/base/206083

Log:
  Update LLVM to r100181.

Added:
  vendor/llvm/dist/lib/Target/X86/SSEDomainFix.cpp
  vendor/llvm/dist/lib/VMCore/DebugLoc.cpp
  vendor/llvm/dist/lib/VMCore/LLVMContextImpl.cpp
  vendor/llvm/dist/test/Bitcode/sse41_pmulld.ll
  vendor/llvm/dist/test/Bitcode/sse41_pmulld.ll.bc   (contents, props changed)
  vendor/llvm/dist/test/CodeGen/CellSPU/bigstack.ll
  vendor/llvm/dist/test/CodeGen/Generic/2010-ZeroSizedArg.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2010-04-01-MachineCSEBug.ll
  vendor/llvm/dist/test/CodeGen/X86/pmulld.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_insert-4.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_insert-9.ll
  vendor/llvm/dist/test/DebugInfo/2010-03-22-CU-HighLow.ll
  vendor/llvm/dist/test/DebugInfo/2010-03-24-MemberFn.ll
  vendor/llvm/dist/test/DebugInfo/2010-03-30-InvalidDbgInfoCrash.ll
  vendor/llvm/dist/test/FrontendC++/2010-03-22-empty-baseclass.cpp
  vendor/llvm/dist/test/TableGen/2010-03-24-PrematureDefaults.td
  vendor/llvm/dist/test/Transforms/GVN/2010-03-31-RedundantPHIs.ll
  vendor/llvm/dist/test/Transforms/Inline/noinline.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/2010-03-30-InvokeCrash.ll
  vendor/llvm/dist/utils/lit/lit/LitTestCase.py
Deleted:
  vendor/llvm/dist/test/CodeGen/X86/vec_insert_4.ll
Modified:
  vendor/llvm/dist/Makefile
  vendor/llvm/dist/autoconf/configure.ac
  vendor/llvm/dist/configure
  vendor/llvm/dist/docs/CodeGenerator.html
  vendor/llvm/dist/docs/ProgrammersManual.html
  vendor/llvm/dist/docs/ReleaseNotes.html
  vendor/llvm/dist/docs/SourceLevelDebugging.html
  vendor/llvm/dist/docs/TableGenFundamentals.html
  vendor/llvm/dist/docs/tutorial/OCamlLangImpl6.html
  vendor/llvm/dist/docs/tutorial/OCamlLangImpl7.html
  vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml
  vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml
  vendor/llvm/dist/include/llvm/ADT/PointerUnion.h
  vendor/llvm/dist/include/llvm/ADT/SmallVector.h
  vendor/llvm/dist/include/llvm/ADT/Statistic.h
  vendor/llvm/dist/include/llvm/ADT/StringMap.h
  vendor/llvm/dist/include/llvm/Analysis/DebugInfo.h
  vendor/llvm/dist/include/llvm/Analysis/Dominators.h
  vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h
  vendor/llvm/dist/include/llvm/CodeGen/DwarfWriter.h
  vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h
  vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h
  vendor/llvm/dist/include/llvm/CodeGen/LiveStackAnalysis.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h
  vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGISel.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
  vendor/llvm/dist/include/llvm/Function.h
  vendor/llvm/dist/include/llvm/InlineAsm.h
  vendor/llvm/dist/include/llvm/Instruction.h
  vendor/llvm/dist/include/llvm/Instructions.h
  vendor/llvm/dist/include/llvm/Intrinsics.td
  vendor/llvm/dist/include/llvm/IntrinsicsARM.td
  vendor/llvm/dist/include/llvm/IntrinsicsPowerPC.td
  vendor/llvm/dist/include/llvm/IntrinsicsX86.td
  vendor/llvm/dist/include/llvm/LLVMContext.h
  vendor/llvm/dist/include/llvm/MC/MCAsmLayout.h
  vendor/llvm/dist/include/llvm/MC/MCAssembler.h
  vendor/llvm/dist/include/llvm/MC/MCContext.h
  vendor/llvm/dist/include/llvm/MC/MCExpr.h
  vendor/llvm/dist/include/llvm/MC/MCInst.h
  vendor/llvm/dist/include/llvm/MC/MCObjectWriter.h
  vendor/llvm/dist/include/llvm/MC/MCSection.h
  vendor/llvm/dist/include/llvm/MC/MCStreamer.h
  vendor/llvm/dist/include/llvm/MC/MachObjectWriter.h
  vendor/llvm/dist/include/llvm/PassManagers.h
  vendor/llvm/dist/include/llvm/Support/Allocator.h
  vendor/llvm/dist/include/llvm/Support/CFG.h
  vendor/llvm/dist/include/llvm/Support/CallSite.h
  vendor/llvm/dist/include/llvm/Support/Casting.h
  vendor/llvm/dist/include/llvm/Support/DebugLoc.h
  vendor/llvm/dist/include/llvm/Support/FileUtilities.h
  vendor/llvm/dist/include/llvm/Support/IRBuilder.h
  vendor/llvm/dist/include/llvm/Support/MathExtras.h
  vendor/llvm/dist/include/llvm/Support/Timer.h
  vendor/llvm/dist/include/llvm/Support/ValueHandle.h
  vendor/llvm/dist/include/llvm/Support/raw_ostream.h
  vendor/llvm/dist/include/llvm/System/Memory.h
  vendor/llvm/dist/include/llvm/Target/TargetAsmBackend.h
  vendor/llvm/dist/include/llvm/Target/TargetInstrDesc.h
  vendor/llvm/dist/include/llvm/Target/TargetLowering.h
  vendor/llvm/dist/include/llvm/Target/TargetMachine.h
  vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td
  vendor/llvm/dist/include/llvm/Transforms/Utils/BuildLibCalls.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/SSAUpdater.h
  vendor/llvm/dist/include/llvm/Type.h
  vendor/llvm/dist/include/llvm/Value.h
  vendor/llvm/dist/lib/Analysis/CaptureTracking.cpp
  vendor/llvm/dist/lib/Analysis/DebugInfo.cpp
  vendor/llvm/dist/lib/Analysis/IPA/CallGraphSCCPass.cpp
  vendor/llvm/dist/lib/Analysis/IPA/GlobalsModRef.cpp
  vendor/llvm/dist/lib/Analysis/InlineCost.cpp
  vendor/llvm/dist/lib/Analysis/LiveValues.cpp
  vendor/llvm/dist/lib/Analysis/LoopPass.cpp
  vendor/llvm/dist/lib/Analysis/MemoryBuiltins.cpp
  vendor/llvm/dist/lib/Analysis/ProfileEstimatorPass.cpp
  vendor/llvm/dist/lib/Analysis/ProfileInfo.cpp
  vendor/llvm/dist/lib/Analysis/ProfileInfoLoaderPass.cpp
  vendor/llvm/dist/lib/Analysis/ProfileVerifierPass.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp
  vendor/llvm/dist/lib/Archive/ArchiveWriter.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/Bitcode/Reader/BitcodeReader.cpp
  vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.h
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfException.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
  vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp
  vendor/llvm/dist/lib/CodeGen/DwarfEHPrepare.cpp
  vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp
  vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp
  vendor/llvm/dist/lib/CodeGen/LiveStackAnalysis.cpp
  vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp
  vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp
  vendor/llvm/dist/lib/CodeGen/MachineCSE.cpp
  vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp
  vendor/llvm/dist/lib/CodeGen/MachineModuleInfo.cpp
  vendor/llvm/dist/lib/CodeGen/OptimizeExts.cpp
  vendor/llvm/dist/lib/CodeGen/PHIElimination.cpp
  vendor/llvm/dist/lib/CodeGen/PreAllocSplitting.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocLocal.cpp
  vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/InstrEmitter.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.cpp
  vendor/llvm/dist/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  vendor/llvm/dist/lib/CodeGen/TwoAddressInstructionPass.cpp
  vendor/llvm/dist/lib/CodeGen/VirtRegRewriter.cpp
  vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngine.cpp
  vendor/llvm/dist/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
  vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp
  vendor/llvm/dist/lib/MC/MCAssembler.cpp
  vendor/llvm/dist/lib/MC/MCContext.cpp
  vendor/llvm/dist/lib/MC/MCExpr.cpp
  vendor/llvm/dist/lib/MC/MCInst.cpp
  vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp
  vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp
  vendor/llvm/dist/lib/MC/MCSection.cpp
  vendor/llvm/dist/lib/MC/MachObjectWriter.cpp
  vendor/llvm/dist/lib/Support/APFloat.cpp
  vendor/llvm/dist/lib/Support/APInt.cpp
  vendor/llvm/dist/lib/Support/CommandLine.cpp
  vendor/llvm/dist/lib/Support/Debug.cpp
  vendor/llvm/dist/lib/Support/ErrorHandling.cpp
  vendor/llvm/dist/lib/Support/MemoryBuffer.cpp
  vendor/llvm/dist/lib/Support/Statistic.cpp
  vendor/llvm/dist/lib/Support/Timer.cpp
  vendor/llvm/dist/lib/Support/Triple.cpp
  vendor/llvm/dist/lib/Support/raw_ostream.cpp
  vendor/llvm/dist/lib/System/Unix/Mutex.inc
  vendor/llvm/dist/lib/System/Unix/Path.inc
  vendor/llvm/dist/lib/System/Win32/Program.inc
  vendor/llvm/dist/lib/System/Win32/Signals.inc
  vendor/llvm/dist/lib/Target/ARM/ARM.td
  vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMInstrFormats.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td
  vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h
  vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp
  vendor/llvm/dist/lib/Target/ARM/NEONPreAllocPass.cpp
  vendor/llvm/dist/lib/Target/ARM/README.txt
  vendor/llvm/dist/lib/Target/ARM/Thumb1InstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb2InstrInfo.cpp
  vendor/llvm/dist/lib/Target/Alpha/AlphaInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Blackfin/BlackfinInstrInfo.td
  vendor/llvm/dist/lib/Target/Blackfin/BlackfinIntrinsics.td
  vendor/llvm/dist/lib/Target/Blackfin/BlackfinRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPU.h
  vendor/llvm/dist/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUISelLowering.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.td
  vendor/llvm/dist/lib/Target/CellSPU/SPURegisterInfo.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPURegisterInfo.h
  vendor/llvm/dist/lib/Target/MBlaze/MBlazeIntrinsics.td
  vendor/llvm/dist/lib/Target/MSIL/MSILWriter.cpp
  vendor/llvm/dist/lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430InstrInfo.cpp
  vendor/llvm/dist/lib/Target/Mangler.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td
  vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16InstrInfo.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16Section.cpp
  vendor/llvm/dist/lib/Target/PIC16/PIC16Section.h
  vendor/llvm/dist/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCBranchSelector.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrAltivec.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFP.td
  vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.cpp
  vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp
  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/X86AsmBackend.cpp
  vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h
  vendor/llvm/dist/lib/Target/X86/X86Instr64bit.td
  vendor/llvm/dist/lib/Target/X86/X86InstrFormats.td
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.h
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td
  vendor/llvm/dist/lib/Target/X86/X86InstrMMX.td
  vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp
  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/XCoreInstrInfo.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.td
  vendor/llvm/dist/lib/Transforms/IPO/ArgumentPromotion.cpp
  vendor/llvm/dist/lib/Transforms/IPO/DeadArgumentElimination.cpp
  vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PruneEH.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/ABCD.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/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Reg2Mem.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyCFGPass.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Utils/AddrModeMatcher.cpp
  vendor/llvm/dist/lib/Transforms/Utils/BreakCriticalEdges.cpp
  vendor/llvm/dist/lib/Transforms/Utils/BuildLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LowerInvoke.cpp
  vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SSAUpdater.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp
  vendor/llvm/dist/lib/VMCore/AsmWriter.cpp
  vendor/llvm/dist/lib/VMCore/AutoUpgrade.cpp
  vendor/llvm/dist/lib/VMCore/CMakeLists.txt
  vendor/llvm/dist/lib/VMCore/Constants.cpp
  vendor/llvm/dist/lib/VMCore/ConstantsContext.h
  vendor/llvm/dist/lib/VMCore/Core.cpp
  vendor/llvm/dist/lib/VMCore/Function.cpp
  vendor/llvm/dist/lib/VMCore/Globals.cpp
  vendor/llvm/dist/lib/VMCore/IRBuilder.cpp
  vendor/llvm/dist/lib/VMCore/InlineAsm.cpp
  vendor/llvm/dist/lib/VMCore/Instruction.cpp
  vendor/llvm/dist/lib/VMCore/Instructions.cpp
  vendor/llvm/dist/lib/VMCore/LLVMContext.cpp
  vendor/llvm/dist/lib/VMCore/LLVMContextImpl.h
  vendor/llvm/dist/lib/VMCore/Metadata.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/Value.cpp
  vendor/llvm/dist/lib/VMCore/ValueSymbolTable.cpp
  vendor/llvm/dist/lib/VMCore/Verifier.cpp
  vendor/llvm/dist/test/CodeGen/ARM/fabss.ll
  vendor/llvm/dist/test/CodeGen/ARM/fadds.ll
  vendor/llvm/dist/test/CodeGen/ARM/fdivs.ll
  vendor/llvm/dist/test/CodeGen/ARM/fmacs.ll
  vendor/llvm/dist/test/CodeGen/ARM/fmscs.ll
  vendor/llvm/dist/test/CodeGen/ARM/fmuls.ll
  vendor/llvm/dist/test/CodeGen/ARM/fnegs.ll
  vendor/llvm/dist/test/CodeGen/ARM/fnmacs.ll
  vendor/llvm/dist/test/CodeGen/ARM/fnmscs.ll
  vendor/llvm/dist/test/CodeGen/ARM/fp_convert.ll
  vendor/llvm/dist/test/CodeGen/ARM/fsubs.ll
  vendor/llvm/dist/test/CodeGen/Generic/addr-label.ll
  vendor/llvm/dist/test/CodeGen/PIC16/2009-07-17-PR4566-pic16.ll
  vendor/llvm/dist/test/CodeGen/PIC16/2009-11-20-NewNode.ll
  vendor/llvm/dist/test/CodeGen/PIC16/C16-15.ll
  vendor/llvm/dist/test/CodeGen/PIC16/global-in-user-section.ll
  vendor/llvm/dist/test/CodeGen/PIC16/globals.ll
  vendor/llvm/dist/test/CodeGen/PIC16/sext.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/eqv-andc-orc-nor.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/tango.net.ftp.FtpClient.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/2009-08-04-CoalescerBug.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/2009-08-04-ScavengerAssert.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug3.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/2009-08-07-NeonFPBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-01-13-StackPtrIndex.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-04-25-MMX-PADDQ.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-02-05-CoalescerBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
  vendor/llvm/dist/test/CodeGen/X86/byval7.ll
  vendor/llvm/dist/test/CodeGen/X86/coalesce-esp.ll
  vendor/llvm/dist/test/CodeGen/X86/dagcombine-buildvector.ll
  vendor/llvm/dist/test/CodeGen/X86/gather-addresses.ll
  vendor/llvm/dist/test/CodeGen/X86/licm-symbol.ll
  vendor/llvm/dist/test/CodeGen/X86/memcpy-2.ll
  vendor/llvm/dist/test/CodeGen/X86/memset-2.ll
  vendor/llvm/dist/test/CodeGen/X86/memset64-on-x86-32.ll
  vendor/llvm/dist/test/CodeGen/X86/pic.ll
  vendor/llvm/dist/test/CodeGen/X86/pmul.ll
  vendor/llvm/dist/test/CodeGen/X86/postalloc-coalescing.ll
  vendor/llvm/dist/test/CodeGen/X86/pr2659.ll
  vendor/llvm/dist/test/CodeGen/X86/sibcall.ll
  vendor/llvm/dist/test/CodeGen/X86/small-byval-memcpy.ll
  vendor/llvm/dist/test/CodeGen/X86/sse-align-12.ll
  vendor/llvm/dist/test/CodeGen/X86/sse-align-6.ll
  vendor/llvm/dist/test/CodeGen/X86/sse3.ll
  vendor/llvm/dist/test/CodeGen/X86/unaligned-load.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_compare.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_return.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_set.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle-7.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle-9.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_zero.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_zero_cse.ll
  vendor/llvm/dist/test/CodeGen/X86/widen_arith-5.ll
  vendor/llvm/dist/test/CodeGen/X86/widen_cast-2.ll
  vendor/llvm/dist/test/CodeGen/X86/widen_load-2.ll
  vendor/llvm/dist/test/CodeGen/X86/xor-icmp.ll
  vendor/llvm/dist/test/CodeGen/X86/xor.ll
  vendor/llvm/dist/test/DebugInfo/2009-11-03-InsertExtractValue.ll
  vendor/llvm/dist/test/Feature/unions.ll
  vendor/llvm/dist/test/FrontendObjC/2010-03-17-StructRef.m
  vendor/llvm/dist/test/MC/AsmParser/X86/x86_32-bit_cat.s
  vendor/llvm/dist/test/MC/AsmParser/X86/x86_32-encoding.s
  vendor/llvm/dist/test/MC/MachO/absolutize.s
  vendor/llvm/dist/test/MC/MachO/darwin-x86_64-reloc.s
  vendor/llvm/dist/test/Transforms/GVN/rle.ll
  vendor/llvm/dist/test/Transforms/InstCombine/objsize.ll
  vendor/llvm/dist/test/Transforms/SimplifyLibCalls/StrCpy.ll
  vendor/llvm/dist/tools/Makefile
  vendor/llvm/dist/tools/bugpoint/BugDriver.cpp
  vendor/llvm/dist/tools/bugpoint/BugDriver.h
  vendor/llvm/dist/tools/edis/Makefile
  vendor/llvm/dist/tools/llc/llc.cpp
  vendor/llvm/dist/tools/llvm-extract/llvm-extract.cpp
  vendor/llvm/dist/tools/llvm-ld/Optimize.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/llvm-mc.cpp
  vendor/llvm/dist/tools/llvmc/plugins/Base/Base.td.in
  vendor/llvm/dist/tools/lto/LTOCodeGenerator.cpp
  vendor/llvm/dist/tools/opt/opt.cpp
  vendor/llvm/dist/unittests/ADT/SmallVectorTest.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h
  vendor/llvm/dist/utils/TableGen/CodeGenInstruction.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenInstruction.h
  vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp
  vendor/llvm/dist/utils/TableGen/DAGISelEmitter.cpp
  vendor/llvm/dist/utils/TableGen/DAGISelMatcher.cpp
  vendor/llvm/dist/utils/TableGen/DAGISelMatcher.h
  vendor/llvm/dist/utils/TableGen/DAGISelMatcherEmitter.cpp
  vendor/llvm/dist/utils/TableGen/DAGISelMatcherGen.cpp
  vendor/llvm/dist/utils/TableGen/DAGISelMatcherOpt.cpp
  vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp
  vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.cpp
  vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp
  vendor/llvm/dist/utils/TableGen/Record.cpp
  vendor/llvm/dist/utils/TableGen/Record.h
  vendor/llvm/dist/utils/TableGen/TableGen.cpp
  vendor/llvm/dist/utils/buildit/build_llvm
  vendor/llvm/dist/utils/lit/lit/TestFormats.py
  vendor/llvm/dist/utils/lit/lit/TestRunner.py
  vendor/llvm/dist/utils/lit/lit/lit.py

Modified: vendor/llvm/dist/Makefile
==============================================================================
--- vendor/llvm/dist/Makefile	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/Makefile	Fri Apr  2 08:54:30 2010	(r206083)
@@ -214,7 +214,7 @@ update:
 	$(SVN) $(SVN-UPDATE-OPTIONS) update $(LLVM_SRC_ROOT)
 	@ $(SVN) status $(LLVM_SRC_ROOT) | $(SUB-SVN-DIRS) | xargs $(SVN) $(SVN-UPDATE-OPTIONS) update
 
-happiness: update all check unittests
+happiness: update all check-all
 
 .PHONY: srpm rpm update happiness
 

Modified: vendor/llvm/dist/autoconf/configure.ac
==============================================================================
--- vendor/llvm/dist/autoconf/configure.ac	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/autoconf/configure.ac	Fri Apr  2 08:54:30 2010	(r206083)
@@ -110,6 +110,11 @@ do
       llvm-tv)      AC_CONFIG_SUBDIRS([projects/llvm-tv])   ;;
       safecode)     AC_CONFIG_SUBDIRS([projects/safecode]) ;;
       llvm-kernel)  AC_CONFIG_SUBDIRS([projects/llvm-kernel]) ;;
+      llvm-gcc)       ;;
+      test-suite)     ;;
+      llvm-test)      ;;
+      poolalloc)      ;;
+      llvm-poolalloc) ;;
       *)
         AC_MSG_WARN([Unknown project (${i}) won't be configured automatically])
         ;;

Modified: vendor/llvm/dist/configure
==============================================================================
--- vendor/llvm/dist/configure	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/configure	Fri Apr  2 08:54:30 2010	(r206083)
@@ -1999,6 +1999,11 @@ do
  ;;
       llvm-kernel)  subdirs="$subdirs projects/llvm-kernel"
  ;;
+      llvm-gcc)       ;;
+      test-suite)     ;;
+      llvm-test)      ;;
+      poolalloc)      ;;
+      llvm-poolalloc) ;;
       *)
         { echo "$as_me:$LINENO: WARNING: Unknown project (${i}) won't be configured automatically" >&5
 echo "$as_me: WARNING: Unknown project (${i}) won't be configured automatically" >&2;}
@@ -11151,7 +11156,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 11154 "configure"
+#line 11159 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H

Modified: vendor/llvm/dist/docs/CodeGenerator.html
==============================================================================
--- vendor/llvm/dist/docs/CodeGenerator.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/CodeGenerator.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -1090,8 +1090,8 @@ def FADDS : AForm_2&lt;59, 21,
 <p>The portion of the instruction definition in bold indicates the pattern used
    to match the instruction.  The DAG operators
    (like <tt>fmul</tt>/<tt>fadd</tt>) are defined in
-   the <tt>lib/Target/TargetSelectionDAG.td</tt> file.  "<tt>F4RC</tt>" is the
-   register class of the input and result values.</p>
+   the <tt>include/llvm/Target/TargetSelectionDAG.td</tt> file.  "
+   <tt>F4RC</tt>" is the register class of the input and result values.</p>
 
 <p>The TableGen DAG instruction selector generator reads the instruction
    patterns in the <tt>.td</tt> file and automatically builds parts of the
@@ -2162,7 +2162,7 @@ MOVSX32rm16 -&gt; movsx, 32-bit register
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2010-03-11 01:22:57 +0100 (Thu, 11 Mar 2010) $
+  Last modified: $Date: 2010-03-25 01:03:04 +0100 (Thu, 25 Mar 2010) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/ProgrammersManual.html
==============================================================================
--- vendor/llvm/dist/docs/ProgrammersManual.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/ProgrammersManual.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -1211,14 +1211,14 @@ and erasing, but does not support iterat
 
 <div class="doc_text">
 
-<p>SmallPtrSet has all the advantages of SmallSet (and a SmallSet of pointers is 
-transparently implemented with a SmallPtrSet), but also supports iterators.  If
+<p>SmallPtrSet has all the advantages of <tt>SmallSet</tt> (and a <tt>SmallSet</tt> of pointers is 
+transparently implemented with a <tt>SmallPtrSet</tt>), but also supports iterators.  If
 more than 'N' insertions are performed, a single quadratically
 probed hash table is allocated and grows as needed, providing extremely
 efficient access (constant time insertion/deleting/queries with low constant
 factors) and is very stingy with malloc traffic.</p>
 
-<p>Note that, unlike std::set, the iterators of SmallPtrSet are invalidated
+<p>Note that, unlike <tt>std::set</tt>, the iterators of <tt>SmallPtrSet</tt> are invalidated
 whenever an insertion occurs.  Also, the values visited by the iterators are not
 visited in sorted order.</p>
 
@@ -1843,6 +1843,21 @@ void printNextInstruction(Instruction* i
 </pre>
 </div>
 
+<p>Unfortunately, these implicit conversions come at a cost; they prevent
+these iterators from conforming to standard iterator conventions, and thus
+from being usable with standard algorithms and containers. For example, they
+prevent the following code, where <tt>B</tt> is a <tt>BasicBlock</tt>,
+from compiling:</p>
+
+<div class="doc_code">
+<pre>
+  llvm::SmallVector&lt;llvm::Instruction *, 16&gt;(B-&gt;begin(), B-&gt;end());
+</pre>
+</div>
+
+<p>Because of this, these implicit conversions may be removed some day,
+and <tt>operator*</tt> changed to return a pointer instead of a reference.</p>
+
 </div>
 
 <!--_______________________________________________________________________-->
@@ -1962,7 +1977,11 @@ for (Value::use_iterator i = F-&gt;use_b
 </pre>
 </div>
 
-<p>Alternately, it's common to have an instance of the <a
+<p>Note that dereferencing a <tt>Value::use_iterator</tt> is not a very cheap
+operation. Instead of performing <tt>*i</tt> above several times, consider
+doing it only once in the loop body and reusing its result.</p>
+
+<p>Alternatively, it's common to have an instance of the <a
 href="/doxygen/classllvm_1_1User.html">User Class</a> and need to know what
 <tt>Value</tt>s are used by it.  The list of all <tt>Value</tt>s used by a
 <tt>User</tt> is known as a <i>use-def</i> chain.  Instances of class
@@ -1981,10 +2000,13 @@ for (User::op_iterator i = pi-&gt;op_beg
 </pre>
 </div>
 
-<!--
-  def-use chains ("finding all users of"): Value::use_begin/use_end
-  use-def chains ("finding all values used"): User::op_begin/op_end [op=operand]
--->
+<p>Declaring objects as <tt>const</tt> is an important tool of enforcing
+mutation free algorithms (such as analyses, etc.). For this purpose above
+iterators come in constant flavors as <tt>Value::const_use_iterator</tt>
+and <tt>Value::const_op_iterator</tt>.  They automatically arise when
+calling <tt>use/op_begin()</tt> on <tt>const Value*</tt>s or
+<tt>const User*</tt>s respectively.  Upon dereferencing, they return
+<tt>const Use*</tt>s. Otherwise the above patterns remain unchanged.</p>
 
 </div>
 
@@ -3058,7 +3080,7 @@ the <tt>lib/VMCore</tt> directory.</p>
   <dt><tt><a name="FunctionType">FunctionType</a></tt></dt>
   <dd>Subclass of DerivedTypes for function types.
     <ul>
-      <li><tt>bool isVarArg() const</tt>: Returns true if its a vararg
+      <li><tt>bool isVarArg() const</tt>: Returns true if it's a vararg
       function</li>
       <li><tt> const Type * getReturnType() const</tt>: Returns the
       return type of the function.</li>
@@ -3276,7 +3298,7 @@ simplifies the representation and makes 
 <ul>
   <li><tt>Value::use_iterator</tt> - Typedef for iterator over the
 use-list<br>
-    <tt>Value::use_const_iterator</tt> - Typedef for const_iterator over
+    <tt>Value::const_use_iterator</tt> - Typedef for const_iterator over
 the use-list<br>
     <tt>unsigned use_size()</tt> - Returns the number of users of the
 value.<br>
@@ -3921,7 +3943,7 @@ arguments. An argument has a pointer to 
   <a href="mailto:dhurjati at cs.uiuc.edu">Dinakar Dhurjati</a> and
   <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: 2010-02-26 00:51:27 +0100 (Fri, 26 Feb 2010) $
+  Last modified: $Date: 2010-04-02 02:08:26 +0200 (Fri, 02 Apr 2010) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/ReleaseNotes.html
==============================================================================
--- vendor/llvm/dist/docs/ReleaseNotes.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/ReleaseNotes.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -127,8 +127,21 @@ development.  Here we include updates on
 <p>In the LLVM 2.7 time-frame, the Clang team has made many improvements:</p>
 
 <ul>
-<li>...</li>
-include a link to cxx_compatibility.html
+<li>FIXME: C++! Include a link to cxx_compatibility.html</li>
+
+<li>FIXME: Static Analyzer improvements?</li>
+
+<li>CIndex API and Python bindings: Clang now includes a C API as part of the
+CIndex library. Although we make make some changes to the API in the future, it
+is intended to be stable and has been designed for use by external projects. See
+the Clang
+doxygen <a href="http://clang.llvm.org/doxygen/group__CINDEX.html">CIndex</a>
+documentation for more details. The CIndex API also includings an preliminary
+set of Python bindings.</li>
+
+<li>ARM Support: Clang now has ABI support for both the Darwin and Linux ARM
+ABIs. Coupled with many improvements to the LLVM ARM backend, Clang is now
+suitable for use as a a beta quality ARM compiler.</li>
 </ul>
 </div>
 
@@ -162,13 +175,23 @@ implementation of the CLI) using LLVM fo
 compilation.</p>
 
 <p>
-VMKit version ?? builds with LLVM 2.7 and you can find it on its
-<a href="http://vmkit.llvm.org/releases/">web page</a>. The release includes
-bug fixes, cleanup and new features. The major changes are:</p>
+With the release of LLVM 2.7, VMKit has shifted to a great framework for writing
+virtual machines. VMKit now offers precise and efficient garbage collection with
+multi-threading support, thanks to the MMTk memory management toolkit, as well
+as just in time and ahead of time compilation with LLVM.  The major changes in
+VMKit 0.27 are:</p>
 
 <ul>
 
-<li>...</li>
+<li>Garbage collection: VMKit now uses the MMTk toolkit for garbage collectors.
+  The first collector to be ported is the MarkSweep collector, which is precise,
+  and drastically improves the performance of VMKit.</li>
+<li>Line number information in the JVM: by using the debug metadata of LLVM, the
+ JVM now supports precise line number information, useful when printing a stack
+ trace.</li>
+<li>Interface calls in the JVM: we implemented a variant of the Interface Method
+  Table technique for interface calls in the JVM.
+</li>
 
 </ul>
 </div>
@@ -391,6 +414,27 @@ code.-->
 </div>
 
 
+<!--=========================================================================-->
+<div class="doc_subsection">
+<a name="tce">TTA-based Codesign Environment (TCE)</a>
+</div>
+
+<div class="doc_text">
+<p>
+<a href="http://tce.cs.tut.fi/">TCE</a> is a toolset for designing
+application-specific processors (ASP) based on the Transport triggered
+architecture (TTA). The toolset provides a complete co-design flow from C/C++
+programs down to synthesizable VHDL and parallel program binaries. Processor
+customization points include the register files, function units, supported
+operations, and the interconnection network.</p>
+
+<p>TCE uses llvm-gcc/Clang and LLVM for C/C++ language support, target
+independent optimizations and also for parts of code generation. It generates
+new LLVM-based code generators "on the fly" for the designed TTA processors and
+loads them in to the compiler backend as runtime libraries to avoid per-target
+recompilation of larger parts of the compiler chain.</p>
+
+</div>
 
 <!-- *********************************************************************** -->
 <div class="doc_section">
@@ -439,7 +483,7 @@ New llvm/Support/Regex.h API.  FileCheck
 Many subtle pointer invalidation bugs in Callgraph have been fixed and it now uses asserting value handles.
 MC Disassembler (with blog post), MCInstPrinter.  Many X86 backend and AsmPrinter simplifications
 Various tools like llc and opt now read either .ll or .bc files as input.
-Malloc and free instructions got removed.
+Malloc and free instructions got removed, along with LowerAllocations pass.
 compiler-rt support for ARM.
 completely llvm-gcc NEON support.
 Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1"
@@ -456,8 +500,12 @@ x86 sibcall optimization
 New LSR with full strength reduction mode
 The most awesome sext / zext optimization pass. ?
 
+The ARM backend now has good support for ARMv4 backend (tested on StrongARM
+  hardware), previously only supported ARMv4T and newer.
+
 
 
+Defaults to RTTI off, packagers should build with make REQUIRE_RTTI=1.
 CondProp pass removed (functionality merged into jump threading).
 AndersAA got removed (from 2.7 or mainline?)
 PredSimplify, LoopVR, GVNPRE got removed.
@@ -978,20 +1026,6 @@ ignored</a>.</li>
 </ul>
 </div>
 
-<!-- ======================================================================= -->
-<div class="doc_subsection">
-	<a name="ocaml-bindings">Known problems with the O'Caml bindings</a>
-</div>
-
-<div class="doc_text">
-
-<p>The <tt>Llvm.Linkage</tt> module is broken, and has incorrect values. Only
-<tt>Llvm.Linkage.External</tt>, <tt>Llvm.Linkage.Available_externally</tt>, and
-<tt>Llvm.Linkage.Link_once</tt> will be correct. If you need any of the other linkage
-modes, you'll have to write an external C library in order to expose the
-functionality. This has been fixed in the trunk.</p>
-</div>
-
 <!-- *********************************************************************** -->
 <div class="doc_section">
   <a name="additionalinfo">Additional Information</a>
@@ -1024,7 +1058,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: 2010-03-19 04:18:05 +0100 (Fri, 19 Mar 2010) $
+  Last modified: $Date: 2010-04-01 03:53:24 +0200 (Thu, 01 Apr 2010) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/SourceLevelDebugging.html
==============================================================================
--- vendor/llvm/dist/docs/SourceLevelDebugging.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/SourceLevelDebugging.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -289,26 +289,25 @@ height="369">
    0x1000.)</p>
 
 <p>The fields of debug descriptors used internally by LLVM 
-   are restricted to only the simple data types <tt>int</tt>, <tt>uint</tt>,
-   <tt>bool</tt>, <tt>float</tt>, <tt>double</tt>, <tt>mdstring</tt> and
-   <tt>mdnode</tt>. </p>
+   are restricted to only the simple data types <tt>i32</tt>, <tt>i1</tt>,
+   <tt>float</tt>, <tt>double</tt>, <tt>mdstring</tt> and <tt>mdnode</tt>. </p>
 
 <div class="doc_code">
 <pre>
 !1 = metadata !{
-  uint,   ;; A tag
+  i32,   ;; A tag
   ...
 }
 </pre>
 </div>
 
 <p><a name="LLVMDebugVersion">The first field of a descriptor is always an
-   <tt>uint</tt> containing a tag value identifying the content of the
+   <tt>i32</tt> containing a tag value identifying the content of the
    descriptor.  The remaining fields are specific to the descriptor.  The values
    of tags are loosely bound to the tag values of DWARF information entries.
    However, that does not restrict the use of the information supplied to DWARF
    targets.  To facilitate versioning of debug information, the tag is augmented
-   with the current debug version (LLVMDebugVersion = 8 << 16 or 0x80000 or
+   with the current debug version (LLVMDebugVersion = 8 &lt;&lt; 16 or 0x80000 or
    524288.)</a></p>
 
 <p>The details of the various descriptors follow.</p>  
@@ -829,8 +828,8 @@ DW_TAG_return_variable = 258
    rules.</p>
 
 <p>In order to handle this, the LLVM debug format uses the metadata attached to
-   llvm instructions to encode line nuber and scoping information. Consider the
-   following C fragment, for example:</p>
+   llvm instructions to encode line number and scoping information. Consider
+   the following C fragment, for example:</p>
 
 <div class="doc_code">
 <pre>
@@ -1069,6 +1068,18 @@ int main(int argc, char *argv[]) {
 </pre>
 </div>
 
+<p>llvm::Instruction provides easy access to metadata attached with an 
+instruction. One can extract line number information encoded in LLVM IR
+using <tt>Instruction::getMetadata()</tt> and 
+<tt>DILocation::getLineNumber()</tt>.
+<pre>
+ if (MDNode *N = I->getMetadata("dbg")) {  // Here I is an LLVM instruction
+   DILocation Loc(N);                      // DILocation is in DebugInfo.h
+   unsigned Line = Loc.getLineNumber();
+   StringRef File = Loc.getFilename();
+   StringRef Dir = Loc.getDirectory();
+ }
+</pre>
 </div>
 
 <!-- ======================================================================= -->
@@ -1762,7 +1773,7 @@ enum Trees {
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2010-03-17 16:01:50 +0100 (Wed, 17 Mar 2010) $
+  Last modified: $Date: 2010-03-31 09:50:17 +0200 (Wed, 31 Mar 2010) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/TableGenFundamentals.html
==============================================================================
--- vendor/llvm/dist/docs/TableGenFundamentals.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/TableGenFundamentals.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -768,9 +768,6 @@ patterns:</p>
   <dd>an implicitly defined physical register.  This tells the dag instruction
   selection emitter the input pattern's extra definitions matches implicit
   physical register definitions.</dd>
-<dt><tt>(parallel (a), (b))</tt></dt>
-  <dd>a list of dags specifying parallel operations which map to the same
-  instruction.</dd>
 
 </div>
 
@@ -797,7 +794,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: 2010-02-28 00:47:46 +0100 (Sun, 28 Feb 2010) $
+  Last modified: $Date: 2010-03-27 03:53:27 +0100 (Sat, 27 Mar 2010) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/tutorial/OCamlLangImpl6.html
==============================================================================
--- vendor/llvm/dist/docs/tutorial/OCamlLangImpl6.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/tutorial/OCamlLangImpl6.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -821,7 +821,7 @@ ocaml_lib ~extern:true "llvm_executionen
 ocaml_lib ~extern:true "llvm_target";;
 ocaml_lib ~extern:true "llvm_scalar_opts";;
 
-flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);;
+flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);;
 dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];;
 </pre>
 </dd>
@@ -1568,7 +1568,7 @@ SSA construction</a>
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="mailto:idadesub at users.sourceforge.net">Erick Tryzelaar</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2010-03-08 20:32:18 +0100 (Mon, 08 Mar 2010) $
+  Last modified: $Date: 2010-03-22 00:15:13 +0100 (Mon, 22 Mar 2010) $
 </address>
 </body>
 </html>

Modified: vendor/llvm/dist/docs/tutorial/OCamlLangImpl7.html
==============================================================================
--- vendor/llvm/dist/docs/tutorial/OCamlLangImpl7.html	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/docs/tutorial/OCamlLangImpl7.html	Fri Apr  2 08:54:30 2010	(r206083)
@@ -999,7 +999,7 @@ ocaml_lib ~extern:true "llvm_executionen
 ocaml_lib ~extern:true "llvm_target";;
 ocaml_lib ~extern:true "llvm_scalar_opts";;
 
-flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);;
+flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);;
 dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];;
 </pre>
 </dd>
@@ -1901,7 +1901,7 @@ extern double printd(double X) {
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
   <a href="mailto:idadesub at users.sourceforge.net">Erick Tryzelaar</a><br>
-  Last modified: $Date: 2010-03-08 20:32:18 +0100 (Mon, 08 Mar 2010) $
+  Last modified: $Date: 2010-03-22 00:15:13 +0100 (Mon, 22 Mar 2010) $
 </address>
 </body>
 </html>

Modified: vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml
==============================================================================
--- vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml	Fri Apr  2 08:54:30 2010	(r206083)
@@ -6,5 +6,5 @@ ocaml_lib ~extern:true "llvm_executionen
 ocaml_lib ~extern:true "llvm_target";;
 ocaml_lib ~extern:true "llvm_scalar_opts";;
 
-flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);;
+flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);;
 dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];;

Modified: vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml
==============================================================================
--- vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml	Fri Apr  2 08:54:30 2010	(r206083)
@@ -6,5 +6,5 @@ ocaml_lib ~extern:true "llvm_executionen
 ocaml_lib ~extern:true "llvm_target";;
 ocaml_lib ~extern:true "llvm_scalar_opts";;
 
-flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);;
+flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);;
 dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];;

Modified: vendor/llvm/dist/include/llvm/ADT/PointerUnion.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/PointerUnion.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/ADT/PointerUnion.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -124,7 +124,7 @@ namespace llvm {
     }
     
     void *getOpaqueValue() const { return Val.getOpaqueValue(); }
-    static PointerUnion getFromOpaqueValue(void *VP) {
+    static inline PointerUnion getFromOpaqueValue(void *VP) {
       PointerUnion V;
       V.Val = ValTy::getFromOpaqueValue(VP);
       return V;
@@ -227,7 +227,7 @@ namespace llvm {
     }
     
     void *getOpaqueValue() const { return Val.getOpaqueValue(); }
-    static PointerUnion3 getFromOpaqueValue(void *VP) {
+    static inline PointerUnion3 getFromOpaqueValue(void *VP) {
       PointerUnion3 V;
       V.Val = ValTy::getFromOpaqueValue(VP);
       return V;
@@ -338,7 +338,7 @@ namespace llvm {
     }
     
     void *getOpaqueValue() const { return Val.getOpaqueValue(); }
-    static PointerUnion4 getFromOpaqueValue(void *VP) {
+    static inline PointerUnion4 getFromOpaqueValue(void *VP) {
       PointerUnion4 V;
       V.Val = ValTy::getFromOpaqueValue(VP);
       return V;

Modified: vendor/llvm/dist/include/llvm/ADT/SmallVector.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/SmallVector.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/ADT/SmallVector.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -239,11 +239,20 @@ public:
   /// starting with "Dest", constructing elements into it as needed.
   template<typename It1, typename It2>
   static void uninitialized_copy(It1 I, It1 E, It2 Dest) {
-    // Use memcpy for PODs: std::uninitialized_copy optimizes to memmove, memcpy
-    // is better.
-    memcpy(&*Dest, &*I, (E-I)*sizeof(T));
+    // Arbitrary iterator types; just use the basic implementation.
+    std::uninitialized_copy(I, E, Dest);
   }
-  
+
+  /// uninitialized_copy - Copy the range [I, E) onto the uninitialized memory
+  /// starting with "Dest", constructing elements into it as needed.
+  template<typename T1, typename T2>
+  static void uninitialized_copy(T1 *I, T1 *E, T2 *Dest) {
+    // Use memcpy for PODs iterated by pointers (which includes SmallVector
+    // iterators): std::uninitialized_copy optimizes to memmove, but we can
+    // use memcpy here.
+    memcpy(Dest, I, (E-I)*sizeof(T));
+  }
+
   /// grow - double the size of the allocated memory, guaranteeing space for at
   /// least one more element or MinSize if specified.
   void grow(size_t MinSize = 0) {
@@ -501,10 +510,13 @@ public:
     this->uninitialized_copy(I, OldEnd, this->end()-NumOverwritten);
     
     // Replace the overwritten part.
-    std::copy(From, From+NumOverwritten, I);
+    for (; NumOverwritten > 0; --NumOverwritten) {
+      *I = *From;
+      ++I; ++From;
+    }
     
     // Insert the non-overwritten middle part.
-    this->uninitialized_copy(From+NumOverwritten, To, OldEnd);
+    this->uninitialized_copy(From, To, OldEnd);
     return I;
   }
   

Modified: vendor/llvm/dist/include/llvm/ADT/Statistic.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/Statistic.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/ADT/Statistic.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -29,6 +29,7 @@
 #include "llvm/System/Atomic.h"
 
 namespace llvm {
+class raw_ostream;
 
 class Statistic {
 public:
@@ -113,6 +114,15 @@ protected:
 #define STATISTIC(VARNAME, DESC) \
   static llvm::Statistic VARNAME = { DEBUG_TYPE, DESC, 0, 0 }
 
+/// \brief Enable the collection and printing of statistics.
+void EnableStatistics();
+
+/// \brief Print statistics to the file returned by CreateInfoOutputFile().
+void PrintStatistics();
+
+/// \brief Print statistics to the given output stream.
+void PrintStatistics(raw_ostream &OS);
+
 } // End llvm namespace
 
 #endif

Modified: vendor/llvm/dist/include/llvm/ADT/StringMap.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/StringMap.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/ADT/StringMap.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -216,6 +216,14 @@ public:
   static const StringMapEntry &GetStringMapEntryFromValue(const ValueTy &V) {
     return GetStringMapEntryFromValue(const_cast<ValueTy&>(V));
   }
+  
+  /// GetStringMapEntryFromKeyData - Given key data that is known to be embedded
+  /// into a StringMapEntry, return the StringMapEntry itself.
+  static StringMapEntry &GetStringMapEntryFromKeyData(const char *KeyData) {
+    char *Ptr = const_cast<char*>(KeyData) - sizeof(StringMapEntry<ValueTy>);
+    return *reinterpret_cast<StringMapEntry*>(Ptr);
+  }
+  
 
   /// Destroy - Destroy this StringMapEntry, releasing memory back to the
   /// specified allocator.

Modified: vendor/llvm/dist/include/llvm/Analysis/DebugInfo.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/DebugInfo.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/Analysis/DebugInfo.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -395,8 +395,21 @@ namespace llvm {
     }
     unsigned isArtificial() const    { return getUnsignedField(14); }
 
-    StringRef getFilename() const    { return getCompileUnit().getFilename();}
-    StringRef getDirectory() const   { return getCompileUnit().getDirectory();}
+    StringRef getFilename() const    { 
+      if (getVersion() == llvm::LLVMDebugVersion7)
+        return getCompileUnit().getFilename();
+
+      DIFile F = getFieldAs<DIFile>(6); 
+      return F.getFilename();
+    }
+
+    StringRef getDirectory() const   { 
+      if (getVersion() == llvm::LLVMDebugVersion7)
+        return getCompileUnit().getFilename();
+
+      DIFile F = getFieldAs<DIFile>(6); 
+      return F.getDirectory();
+    }
 
     /// Verify - Verify that a subprogram descriptor is well formed.
     bool Verify() const;

Modified: vendor/llvm/dist/include/llvm/Analysis/Dominators.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/Dominators.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/Analysis/Dominators.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -116,12 +116,12 @@ public:
       return true;
 
     SmallPtrSet<NodeT *, 4> OtherChildren;
-    for(iterator I = Other->begin(), E = Other->end(); I != E; ++I) {
+    for (iterator I = Other->begin(), E = Other->end(); I != E; ++I) {
       NodeT *Nd = (*I)->getBlock();
       OtherChildren.insert(Nd);
     }
 
-    for(iterator I = begin(), E = end(); I != E; ++I) {
+    for (iterator I = begin(), E = end(); I != E; ++I) {
       NodeT *N = (*I)->getBlock();
       if (OtherChildren.count(N) == 0)
         return true;
@@ -240,8 +240,9 @@ protected:
   template<class N, class GraphT>
   void Split(DominatorTreeBase<typename GraphT::NodeType>& DT,
              typename GraphT::NodeType* NewBB) {
-    assert(std::distance(GraphT::child_begin(NewBB), GraphT::child_end(NewBB)) == 1
-           && "NewBB should have a single successor!");
+    assert(std::distance(GraphT::child_begin(NewBB),
+                         GraphT::child_end(NewBB)) == 1 &&
+           "NewBB should have a single successor!");
     typename GraphT::NodeType* NewBBSucc = *GraphT::child_begin(NewBB);
 
     std::vector<typename GraphT::NodeType*> PredBlocks;
@@ -374,8 +375,8 @@ public:
   /// isReachableFromEntry - Return true if A is dominated by the entry
   /// block of the function containing it.
   bool isReachableFromEntry(NodeT* A) {
-    assert (!this->isPostDominator()
-            && "This is not implemented for post dominators");
+    assert(!this->isPostDominator() &&
+           "This is not implemented for post dominators");
     return dominates(&A->getParent()->front(), A);
   }
 
@@ -393,8 +394,9 @@ public:
     // Compare the result of the tree walk and the dfs numbers, if expensive
     // checks are enabled.
 #ifdef XDEBUG
-    assert(!DFSInfoValid
-           || (dominatedBySlowTreeWalk(A, B) == B->DominatedBy(A)));
+    assert((!DFSInfoValid ||
+            (dominatedBySlowTreeWalk(A, B) == B->DominatedBy(A))) &&
+           "Tree walk disagrees with dfs numbers!");
 #endif
 
     if (DFSInfoValid)
@@ -430,16 +432,16 @@ public:
   /// findNearestCommonDominator - Find nearest common dominator basic block
   /// for basic block A and B. If there is no such block then return NULL.
   NodeT *findNearestCommonDominator(NodeT *A, NodeT *B) {
+    assert(A->getParent() == B->getParent() &&
+           "Two blocks are not in same function");
 
-    assert (!this->isPostDominator()
-            && "This is not implemented for post dominators");
-    assert (A->getParent() == B->getParent()
-            && "Two blocks are not in same function");
-
-    // If either A or B is a entry block then it is nearest common dominator.
-    NodeT &Entry  = A->getParent()->front();
-    if (A == &Entry || B == &Entry)
-      return &Entry;
+    // If either A or B is a entry block then it is nearest common dominator
+    // (for forward-dominators).
+    if (!this->isPostDominator()) {
+      NodeT &Entry = A->getParent()->front();
+      if (A == &Entry || B == &Entry)
+        return &Entry;
+    }
 
     // If B dominates A then B is nearest common dominator.
     if (dominates(B, A))
@@ -463,7 +465,7 @@ public:
 
     // Walk NodeB immediate dominators chain and find common dominator node.
     DomTreeNodeBase<NodeT> *IDomB = NodeB->getIDom();
-    while(IDomB) {
+    while (IDomB) {
       if (NodeADoms.count(IDomB) != 0)
         return IDomB->getBlock();
 
@@ -508,8 +510,8 @@ public:
   /// children list. Deletes dominator node associated with basic block BB.
   void eraseNode(NodeT *BB) {
     DomTreeNodeBase<NodeT> *Node = getNode(BB);
-    assert (Node && "Removing node that isn't in dominator tree.");
-    assert (Node->getChildren().empty() && "Node is not a leaf node.");
+    assert(Node && "Removing node that isn't in dominator tree.");
+    assert(Node->getChildren().empty() && "Node is not a leaf node.");
 
       // Remove node from immediate dominator's children list.
     DomTreeNodeBase<NodeT> *IDom = Node->getIDom();
@@ -952,7 +954,7 @@ public:
         return true;
     }
 
-    if(!tmpSet.empty())
+    if (!tmpSet.empty())
       // There are nodes that are in DS2 but not in DS1.
       return true;
 

Modified: vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -47,7 +47,6 @@ namespace llvm {
   class MCSection;
   class MCStreamer;
   class MCSymbol;
-  class MDNode;
   class DwarfWriter;
   class Mangler;
   class MCAsmInfo;
@@ -138,9 +137,6 @@ namespace llvm {
     mutable unsigned Counter;
     mutable unsigned SetCounter;
     
-    // Private state for processDebugLoc()
-    mutable const MDNode *PrevDLT;
-
   protected:
     explicit AsmPrinter(formatted_raw_ostream &o, TargetMachine &TM,
                         MCStreamer &Streamer);

Modified: vendor/llvm/dist/include/llvm/CodeGen/DwarfWriter.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/DwarfWriter.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/DwarfWriter.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -83,19 +83,11 @@ public:
   ///
   void EndFunction(const MachineFunction *MF);
 
-  /// RecordSourceLine - Register a source line with debug info. Returns the
-  /// unique label that was emitted and which provides correspondence to
-  /// the source line list.
-  MCSymbol *RecordSourceLine(unsigned Line, unsigned Col, MDNode *Scope);
-
-  /// getRecordSourceLineCount - Count source lines.
-  unsigned getRecordSourceLineCount();
-
   /// ShouldEmitDwarfDebug - Returns true if Dwarf debugging declarations should
   /// be emitted.
   bool ShouldEmitDwarfDebug() const;
 
-  void BeginScope(const MachineInstr *MI, MCSymbol *Label);
+  void BeginScope(const MachineInstr *MI);
   void EndScope(const MachineInstr *MI);
 };
 

Modified: vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -67,7 +67,7 @@ namespace llvm {
     } cr;
 
   public:
-
+    typedef SpecificBumpPtrAllocator<VNInfo> Allocator;
     typedef SmallVector<SlotIndex, 4> KillSet;
 
     /// The ID number of this value.
@@ -330,12 +330,7 @@ namespace llvm {
     }
     
     void clear() {
-      while (!valnos.empty()) {
-        VNInfo *VNI = valnos.back();
-        valnos.pop_back();
-        VNI->~VNInfo();
-      }
-      
+      valnos.clear();
       ranges.clear();
     }
 
@@ -370,10 +365,8 @@ namespace llvm {
     /// getNextValue - Create a new value number and return it.  MIIdx specifies
     /// the instruction that defines the value number.
     VNInfo *getNextValue(SlotIndex def, MachineInstr *CopyMI,
-                         bool isDefAccurate, BumpPtrAllocator &VNInfoAllocator){
-      VNInfo *VNI =
-        static_cast<VNInfo*>(VNInfoAllocator.Allocate((unsigned)sizeof(VNInfo),
-                                                      alignof<VNInfo>()));
+                       bool isDefAccurate, VNInfo::Allocator &VNInfoAllocator) {
+      VNInfo *VNI = VNInfoAllocator.Allocate();
       new (VNI) VNInfo((unsigned)valnos.size(), def, CopyMI);
       VNI->setIsDefAccurate(isDefAccurate);
       valnos.push_back(VNI);
@@ -383,11 +376,8 @@ namespace llvm {
     /// Create a copy of the given value. The new value will be identical except
     /// for the Value number.
     VNInfo *createValueCopy(const VNInfo *orig,
-                            BumpPtrAllocator &VNInfoAllocator) {
-      VNInfo *VNI =
-        static_cast<VNInfo*>(VNInfoAllocator.Allocate((unsigned)sizeof(VNInfo),
-                                                      alignof<VNInfo>()));
-    
+                            VNInfo::Allocator &VNInfoAllocator) {
+      VNInfo *VNI = VNInfoAllocator.Allocate();
       new (VNI) VNInfo((unsigned)valnos.size(), *orig);
       valnos.push_back(VNI);
       return VNI;
@@ -427,14 +417,14 @@ namespace llvm {
     /// VNInfoAllocator since it will create a new val#.
     void MergeInClobberRanges(LiveIntervals &li_,
                               const LiveInterval &Clobbers,
-                              BumpPtrAllocator &VNInfoAllocator);
+                              VNInfo::Allocator &VNInfoAllocator);
 
     /// MergeInClobberRange - Same as MergeInClobberRanges except it merge in a
     /// single LiveRange only.
     void MergeInClobberRange(LiveIntervals &li_,
                              SlotIndex Start,
                              SlotIndex End,
-                             BumpPtrAllocator &VNInfoAllocator);
+                             VNInfo::Allocator &VNInfoAllocator);
 
     /// MergeValueInAsValue - Merge all of the live ranges of a specific val#
     /// in RHS into this live interval as the specified value number.
@@ -454,7 +444,7 @@ namespace llvm {
     /// Copy - Copy the specified live interval. This copies all the fields
     /// except for the register of the interval.
     void Copy(const LiveInterval &RHS, MachineRegisterInfo *MRI,
-              BumpPtrAllocator &VNInfoAllocator);
+              VNInfo::Allocator &VNInfoAllocator);
     
     bool empty() const { return ranges.empty(); }
 

Modified: vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/LiveIntervalAnalysis.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -55,7 +55,7 @@ namespace llvm {
 
     /// Special pool allocator for VNInfo's (LiveInterval val#).
     ///
-    BumpPtrAllocator VNInfoAllocator;
+    VNInfo::Allocator VNInfoAllocator;
 
     typedef DenseMap<unsigned, LiveInterval*> Reg2IntervalMap;
     Reg2IntervalMap r2iMap_;
@@ -221,7 +221,7 @@ namespace llvm {
       indexes_->renumberIndexes();
     }
 
-    BumpPtrAllocator& getVNInfoAllocator() { return VNInfoAllocator; }
+    VNInfo::Allocator& getVNInfoAllocator() { return VNInfoAllocator; }
 
     /// getVNInfoSourceReg - Helper function that parses the specified VNInfo
     /// copy field and returns the source register that defines it.

Modified: vendor/llvm/dist/include/llvm/CodeGen/LiveStackAnalysis.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/LiveStackAnalysis.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/LiveStackAnalysis.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -27,7 +27,7 @@ namespace llvm {
   class LiveStacks : public MachineFunctionPass {
     /// Special pool allocator for VNInfo's (LiveInterval val#).
     ///
-    BumpPtrAllocator VNInfoAllocator;
+    VNInfo::Allocator VNInfoAllocator;
 
     /// S2IMap - Stack slot indices to live interval mapping.
     ///
@@ -91,7 +91,7 @@ namespace llvm {
       return I->second;
     }
 
-    BumpPtrAllocator& getVNInfoAllocator() { return VNInfoAllocator; }
+    VNInfo::Allocator& getVNInfoAllocator() { return VNInfoAllocator; }
 
     virtual void getAnalysisUsage(AnalysisUsage &AU) const;
     virtual void releaseMemory();

Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/MachineOperand.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -285,6 +285,11 @@ public:
     IsEarlyClobber = Val;
   }
 
+  void setIsDebug(bool Val = true) {
+    assert(isReg() && IsDef && "Wrong MachineOperand accessor");
+    IsDebug = Val;
+  }
+
   //===--------------------------------------------------------------------===//
   // Accessors for various operand types.
   //===--------------------------------------------------------------------===//

Modified: vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/RuntimeLibcalls.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -169,6 +169,8 @@ namespace RTLIB {
     FPTOSINT_F32_I32,
     FPTOSINT_F32_I64,
     FPTOSINT_F32_I128,
+    FPTOSINT_F64_I8,
+    FPTOSINT_F64_I16,
     FPTOSINT_F64_I32,
     FPTOSINT_F64_I64,
     FPTOSINT_F64_I128,
@@ -183,6 +185,8 @@ namespace RTLIB {
     FPTOUINT_F32_I32,
     FPTOUINT_F32_I64,
     FPTOUINT_F32_I128,
+    FPTOUINT_F64_I8,
+    FPTOUINT_F64_I16,
     FPTOUINT_F64_I32,
     FPTOUINT_F64_I64,
     FPTOUINT_F64_I128,

Modified: vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h	Fri Apr  2 06:55:31 2010	(r206082)
+++ vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h	Fri Apr  2 08:54:30 2010	(r206083)
@@ -34,6 +34,7 @@ class FunctionLoweringInfo;
 class MachineConstantPoolValue;
 class MachineFunction;
 class MachineModuleInfo;
+class MDNode;
 class SDNodeOrdering;
 class SDDbgValue;
 class TargetLowering;
@@ -60,42 +61,40 @@ private:
 
 /// SDDbgInfo - Keeps track of dbg_value information through SDISel.  We do
 /// not build SDNodes for these so as not to perturb the generated code;
-/// instead the info is kept off to the side in this structure.  SDNodes may
-/// have an associated dbg_value entry in DbgValMap.  Debug info that is not
-/// associated with any SDNode is held in DbgConstMap.  It is possible for
-/// optimizations to change a variable to a constant, in which case the
-/// corresponding debug info is moved from the variable to the constant table
-/// (NYI).
+/// instead the info is kept off to the side in this structure. Each SDNode may
+/// have one or more associated dbg_value entries. This information is kept in
+/// DbgValMap.
 class SDDbgInfo {
-  DenseMap<const SDNode*, SDDbgValue*> DbgVblMap;
-  SmallVector<SDDbgValue*, 4> DbgConstMap;
+  SmallVector<SDDbgValue*, 32> DbgValues;
+  DenseMap<const SDNode*, SmallVector<SDDbgValue*, 2> > DbgValMap;
 
   void operator=(const SDDbgInfo&);   // Do not implement.
   SDDbgInfo(const SDDbgInfo&);   // Do not implement.
 public:
   SDDbgInfo() {}
 
-  void add(const SDNode *Node, SDDbgValue *V) {
-    DbgVblMap[Node] = V;
+  void add(SDDbgValue *V, const SDNode *Node = 0) {
+    if (Node)
+      DbgValMap[Node].push_back(V);
+    DbgValues.push_back(V);
   }
-  void add(SDDbgValue *V) { DbgConstMap.push_back(V); }
-  void remove(const SDNode *Node) {
-    DenseMap<const SDNode*, SDDbgValue*>::iterator Itr =
-                      DbgVblMap.find(Node);
-    if (Itr != DbgVblMap.end())
-      DbgVblMap.erase(Itr);
-  }
-  // No need to remove a constant.
+
   void clear() {
-    DbgVblMap.clear();
-    DbgConstMap.clear();
+    DbgValMap.clear();
+    DbgValues.clear();
   }
-  SDDbgValue *getSDDbgValue(const SDNode *Node) {
-    return DbgVblMap[Node];
+
+  bool empty() const {
+    return DbgValues.empty();
+  }
+
+  SmallVector<SDDbgValue*,2> &getSDDbgValues(const SDNode *Node) {
+    return DbgValMap[Node];
   }
-  typedef SmallVector<SDDbgValue*, 4>::iterator ConstDbgIterator;
-  ConstDbgIterator DbgConstBegin() { return DbgConstMap.begin(); }
-  ConstDbgIterator DbgConstEnd() { return DbgConstMap.end(); }
+
+  typedef SmallVector<SDDbgValue*,32>::iterator DbgIterator;
+  DbgIterator DbgBegin() { return DbgValues.begin(); }
+  DbgIterator DbgEnd()   { return DbgValues.end(); }
 };
 
 enum CombineLevel {
@@ -769,6 +768,15 @@ public:
   SDNode *getNodeIfExists(unsigned Opcode, SDVTList VTs,
                           const SDValue *Ops, unsigned NumOps);
 
+  /// getDbgValue - Creates a SDDbgValue node.
+  ///
+  SDDbgValue *getDbgValue(MDNode *MDPtr, SDNode *N, unsigned R, uint64_t Off,
+                          DebugLoc DL, unsigned O);
+  SDDbgValue *getDbgValue(MDNode *MDPtr, Value *C, uint64_t Off,
+                          DebugLoc DL, unsigned O);
+  SDDbgValue *getDbgValue(MDNode *MDPtr, unsigned FI, uint64_t Off,
+                          DebugLoc DL, unsigned O);
+
   /// DAGUpdateListener - Clients of various APIs that cause global effects on
   /// the DAG can optionally implement this interface.  This allows the clients
   /// to handle the various sorts of updates that happen.
@@ -871,19 +879,21 @@ public:
   /// GetOrdering - Get the order for the SDNode.
   unsigned GetOrdering(const SDNode *SD) const;
 
-  /// AssignDbgInfo - Assign debug info to the SDNode.
-  void AssignDbgInfo(SDNode *SD, SDDbgValue *db);
+  /// AddDbgValue - Add a dbg_value SDNode. If SD is non-null that means the
+  /// value is produced by SD.
+  void AddDbgValue(SDDbgValue *DB, SDNode *SD = 0);

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


More information about the svn-src-all mailing list