Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Jun 2011 18:01:32 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223017 - in head: contrib/llvm/include/llvm contrib/llvm/include/llvm-c contrib/llvm/include/llvm/ADT contrib/llvm/include/llvm/Analysis contrib/llvm/include/llvm/CodeGen contrib/llvm/...
Message-ID:  <201106121801.p5CI1Wr6035268@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sun Jun 12 18:01:31 2011
New Revision: 223017
URL: http://svn.freebsd.org/changeset/base/223017

Log:
  Upgrade our copy of llvm/clang to r132879, from upstream's trunk.

Added:
  head/contrib/llvm/include/llvm/ADT/PackedVector.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/ADT/PackedVector.h
  head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/Analysis/BranchProbabilityInfo.h
  head/contrib/llvm/include/llvm/DefaultPasses.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/DefaultPasses.h
  head/contrib/llvm/include/llvm/MC/MCWin64EH.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/MC/MCWin64EH.h
  head/contrib/llvm/include/llvm/Support/BranchProbability.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/Support/BranchProbability.h
  head/contrib/llvm/include/llvm/Support/PassManagerBuilder.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/Support/PassManagerBuilder.h
  head/contrib/llvm/include/llvm/Support/Win64EH.h
     - copied unchanged from r223016, vendor/llvm/dist/include/llvm/Support/Win64EH.h
  head/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/Analysis/BranchProbabilityInfo.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/Win64Exception.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/CodeGen/AsmPrinter/Win64Exception.cpp
  head/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/CodeGen/RegisterClassInfo.cpp
  head/contrib/llvm/lib/CodeGen/RegisterClassInfo.h
     - copied unchanged from r223016, vendor/llvm/dist/lib/CodeGen/RegisterClassInfo.h
  head/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/ExecutionEngine/TargetSelect.cpp
  head/contrib/llvm/lib/MC/MCWin64EH.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/MC/MCWin64EH.cpp
  head/contrib/llvm/lib/Support/BranchProbability.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/Support/BranchProbability.cpp
  head/contrib/llvm/lib/Target/Mips/MipsEmitGPRestore.cpp
     - copied unchanged from r223016, vendor/llvm/dist/lib/Target/Mips/MipsEmitGPRestore.cpp
  head/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp
     - copied unchanged from r223016, vendor/llvm/dist/utils/TableGen/CodeGenRegisters.cpp
  head/contrib/llvm/utils/TableGen/SetTheory.cpp
     - copied unchanged from r223016, vendor/llvm/dist/utils/TableGen/SetTheory.cpp
  head/contrib/llvm/utils/TableGen/SetTheory.h
     - copied unchanged from r223016, vendor/llvm/dist/utils/TableGen/SetTheory.h
Deleted:
  head/contrib/llvm/include/llvm/Support/StandardPasses.h
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfTableException.cpp
  head/contrib/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp
  head/contrib/llvm/lib/ExecutionEngine/MCJIT/TargetSelect.cpp
  head/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h
  head/contrib/llvm/tools/clang/lib/Frontend/DiagChecker.cpp
  head/contrib/llvm/tools/clang/lib/Tooling/JsonCompileCommandLineDatabase.cpp
  head/contrib/llvm/tools/clang/lib/Tooling/JsonCompileCommandLineDatabase.h
  head/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
Modified:
  head/contrib/llvm/include/llvm-c/Core.h
  head/contrib/llvm/include/llvm-c/Disassembler.h
  head/contrib/llvm/include/llvm/ADT/FoldingSet.h
  head/contrib/llvm/include/llvm/ADT/StringRef.h
  head/contrib/llvm/include/llvm/ADT/Triple.h
  head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h
  head/contrib/llvm/include/llvm/Analysis/CallGraph.h
  head/contrib/llvm/include/llvm/Analysis/DIBuilder.h
  head/contrib/llvm/include/llvm/Analysis/DebugInfo.h
  head/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h
  head/contrib/llvm/include/llvm/Analysis/IVUsers.h
  head/contrib/llvm/include/llvm/Analysis/RegionPass.h
  head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
  head/contrib/llvm/include/llvm/Argument.h
  head/contrib/llvm/include/llvm/Attributes.h
  head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h
  head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h
  head/contrib/llvm/include/llvm/CodeGen/FastISel.h
  head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h
  head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h
  head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h
  head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h
  head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h
  head/contrib/llvm/include/llvm/CodeGen/MachineOperand.h
  head/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h
  head/contrib/llvm/include/llvm/CodeGen/RegAllocPBQP.h
  head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
  head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
  head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
  head/contrib/llvm/include/llvm/CompilerDriver/Common.td
  head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
  head/contrib/llvm/include/llvm/Function.h
  head/contrib/llvm/include/llvm/InitializePasses.h
  head/contrib/llvm/include/llvm/IntrinsicInst.h
  head/contrib/llvm/include/llvm/Intrinsics.td
  head/contrib/llvm/include/llvm/IntrinsicsARM.td
  head/contrib/llvm/include/llvm/IntrinsicsX86.td
  head/contrib/llvm/include/llvm/IntrinsicsXCore.td
  head/contrib/llvm/include/llvm/LinkAllPasses.h
  head/contrib/llvm/include/llvm/MC/MCAsmInfo.h
  head/contrib/llvm/include/llvm/MC/MCDwarf.h
  head/contrib/llvm/include/llvm/MC/MCELFSymbolFlags.h
  head/contrib/llvm/include/llvm/MC/MCExpr.h
  head/contrib/llvm/include/llvm/MC/MCInstPrinter.h
  head/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h
  head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h
  head/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h
  head/contrib/llvm/include/llvm/MC/MCStreamer.h
  head/contrib/llvm/include/llvm/Metadata.h
  head/contrib/llvm/include/llvm/Operator.h
  head/contrib/llvm/include/llvm/Support/Casting.h
  head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h
  head/contrib/llvm/include/llvm/Support/Dwarf.h
  head/contrib/llvm/include/llvm/Support/IRBuilder.h
  head/contrib/llvm/include/llvm/Support/MemoryBuffer.h
  head/contrib/llvm/include/llvm/Support/PatternMatch.h
  head/contrib/llvm/include/llvm/Support/Program.h
  head/contrib/llvm/include/llvm/Support/SourceMgr.h
  head/contrib/llvm/include/llvm/Target/Target.td
  head/contrib/llvm/include/llvm/Target/TargetAsmInfo.h
  head/contrib/llvm/include/llvm/Target/TargetInstrItineraries.h
  head/contrib/llvm/include/llvm/Target/TargetLibraryInfo.h
  head/contrib/llvm/include/llvm/Target/TargetLowering.h
  head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h
  head/contrib/llvm/include/llvm/Target/TargetOptions.h
  head/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h
  head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td
  head/contrib/llvm/include/llvm/Transforms/Instrumentation.h
  head/contrib/llvm/include/llvm/Transforms/Utils/Local.h
  head/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h
  head/contrib/llvm/include/llvm/Type.h
  head/contrib/llvm/lib/Analysis/Analysis.cpp
  head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp
  head/contrib/llvm/lib/Analysis/ConstantFolding.cpp
  head/contrib/llvm/lib/Analysis/DIBuilder.cpp
  head/contrib/llvm/lib/Analysis/IPA/CallGraph.cpp
  head/contrib/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp
  head/contrib/llvm/lib/Analysis/IPA/FindUsedTypes.cpp
  head/contrib/llvm/lib/Analysis/IVUsers.cpp
  head/contrib/llvm/lib/Analysis/InlineCost.cpp
  head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
  head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp
  head/contrib/llvm/lib/Analysis/Loads.cpp
  head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
  head/contrib/llvm/lib/Analysis/RegionPass.cpp
  head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  head/contrib/llvm/lib/Analysis/ValueTracking.cpp
  head/contrib/llvm/lib/AsmParser/LLLexer.cpp
  head/contrib/llvm/lib/AsmParser/LLLexer.h
  head/contrib/llvm/lib/AsmParser/LLParser.cpp
  head/contrib/llvm/lib/AsmParser/LLToken.h
  head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
  head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
  head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
  head/contrib/llvm/lib/CodeGen/AllocationOrder.cpp
  head/contrib/llvm/lib/CodeGen/AllocationOrder.h
  head/contrib/llvm/lib/CodeGen/AntiDepBreaker.h
  head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
  head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
  head/contrib/llvm/lib/CodeGen/BranchFolding.cpp
  head/contrib/llvm/lib/CodeGen/BranchFolding.h
  head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp
  head/contrib/llvm/lib/CodeGen/CallingConvLower.cpp
  head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
  head/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
  head/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp
  head/contrib/llvm/lib/CodeGen/IfConversion.cpp
  head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp
  head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp
  head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp
  head/contrib/llvm/lib/CodeGen/LiveDebugVariables.h
  head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp
  head/contrib/llvm/lib/CodeGen/LiveRangeEdit.h
  head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp
  head/contrib/llvm/lib/CodeGen/MachineFunction.cpp
  head/contrib/llvm/lib/CodeGen/MachineInstr.cpp
  head/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp
  head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp
  head/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp
  head/contrib/llvm/lib/CodeGen/RegAllocBase.h
  head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp
  head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp
  head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp
  head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp
  head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
  head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.h
  head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  head/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp
  head/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.h
  head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp
  head/contrib/llvm/lib/CodeGen/SplitKit.cpp
  head/contrib/llvm/lib/CodeGen/SplitKit.h
  head/contrib/llvm/lib/CodeGen/TailDuplication.cpp
  head/contrib/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp
  head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
  head/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp
  head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp
  head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp
  head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.cpp
  head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.h
  head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp
  head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h
  head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h
  head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  head/contrib/llvm/lib/MC/ELFObjectWriter.cpp
  head/contrib/llvm/lib/MC/ELFObjectWriter.h
  head/contrib/llvm/lib/MC/MCAsmInfo.cpp
  head/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp
  head/contrib/llvm/lib/MC/MCAsmStreamer.cpp
  head/contrib/llvm/lib/MC/MCAssembler.cpp
  head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp
  head/contrib/llvm/lib/MC/MCDwarf.cpp
  head/contrib/llvm/lib/MC/MCELF.cpp
  head/contrib/llvm/lib/MC/MCELFStreamer.cpp
  head/contrib/llvm/lib/MC/MCExpr.cpp
  head/contrib/llvm/lib/MC/MCInstPrinter.cpp
  head/contrib/llvm/lib/MC/MCMachOStreamer.cpp
  head/contrib/llvm/lib/MC/MCObjectStreamer.cpp
  head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp
  head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp
  head/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp
  head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp
  head/contrib/llvm/lib/MC/MCStreamer.cpp
  head/contrib/llvm/lib/MC/WinCOFFStreamer.cpp
  head/contrib/llvm/lib/Support/APInt.cpp
  head/contrib/llvm/lib/Support/Dwarf.cpp
  head/contrib/llvm/lib/Support/FoldingSet.cpp
  head/contrib/llvm/lib/Support/Host.cpp
  head/contrib/llvm/lib/Support/MemoryBuffer.cpp
  head/contrib/llvm/lib/Support/SourceMgr.cpp
  head/contrib/llvm/lib/Support/Unix/Host.inc
  head/contrib/llvm/lib/Support/Unix/Program.inc
  head/contrib/llvm/lib/Support/Windows/Program.inc
  head/contrib/llvm/lib/Target/ARM/ARMAsmBackend.cpp
  head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
  head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h
  head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
  head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h
  head/contrib/llvm/lib/Target/ARM/ARMCodeEmitter.cpp
  head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp
  head/contrib/llvm/lib/Target/ARM/ARMFixupKinds.h
  head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
  head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
  head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
  head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td
  head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td
  head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td
  head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td
  head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td
  head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
  head/contrib/llvm/lib/Target/ARM/ARMMCAsmInfo.cpp
  head/contrib/llvm/lib/Target/ARM/ARMMCCodeEmitter.cpp
  head/contrib/llvm/lib/Target/ARM/ARMPerfectShuffle.h
  head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td
  head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp
  head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
  head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
  head/contrib/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h
  head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
  head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h
  head/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp
  head/contrib/llvm/lib/Target/Alpha/AlphaISelLowering.cpp
  head/contrib/llvm/lib/Target/Alpha/AlphaISelLowering.h
  head/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp
  head/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.h
  head/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.td
  head/contrib/llvm/lib/Target/Blackfin/BlackfinFrameLowering.cpp
  head/contrib/llvm/lib/Target/Blackfin/BlackfinFrameLowering.h
  head/contrib/llvm/lib/Target/Blackfin/BlackfinISelDAGToDAG.cpp
  head/contrib/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp
  head/contrib/llvm/lib/Target/Blackfin/BlackfinISelLowering.h
  head/contrib/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp
  head/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp
  head/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h
  head/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.td
  head/contrib/llvm/lib/Target/CBackend/CBackend.cpp
  head/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.cpp
  head/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.h
  head/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp
  head/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.h
  head/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.td
  head/contrib/llvm/lib/Target/MBlaze/MBlazeISelLowering.cpp
  head/contrib/llvm/lib/Target/MBlaze/MBlazeISelLowering.h
  head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.td
  head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp
  head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.h
  head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.td
  head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
  head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h
  head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
  head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h
  head/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.td
  head/contrib/llvm/lib/Target/Mips/Mips.h
  head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
  head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp
  head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h
  head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp
  head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
  head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h
  head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td
  head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td
  head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h
  head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  head/contrib/llvm/lib/Target/Mips/MipsMCAsmInfo.cpp
  head/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h
  head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp
  head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h
  head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td
  head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp
  head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h
  head/contrib/llvm/lib/Target/PTX/PTX.td
  head/contrib/llvm/lib/Target/PTX/PTXISelLowering.cpp
  head/contrib/llvm/lib/Target/PTX/PTXISelLowering.h
  head/contrib/llvm/lib/Target/PTX/PTXInstrInfo.td
  head/contrib/llvm/lib/Target/PTX/PTXRegisterInfo.h
  head/contrib/llvm/lib/Target/PTX/PTXSubtarget.cpp
  head/contrib/llvm/lib/Target/PTX/PTXSubtarget.h
  head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
  head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
  head/contrib/llvm/lib/Target/PowerPC/PPC.h
  head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
  head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
  head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
  head/contrib/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
  head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h
  head/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
  head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp
  head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h
  head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
  head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h
  head/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.td
  head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
  head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h
  head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
  head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h
  head/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
  head/contrib/llvm/lib/Target/TargetLibraryInfo.cpp
  head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp
  head/contrib/llvm/lib/Target/TargetMachine.cpp
  head/contrib/llvm/lib/Target/TargetRegisterInfo.cpp
  head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
  head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h
  head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
  head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h
  head/contrib/llvm/lib/Target/X86/X86.td
  head/contrib/llvm/lib/Target/X86/X86FastISel.cpp
  head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp
  head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
  head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  head/contrib/llvm/lib/Target/X86/X86ISelLowering.h
  head/contrib/llvm/lib/Target/X86/X86InstrCompiler.td
  head/contrib/llvm/lib/Target/X86/X86InstrExtension.td
  head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
  head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  head/contrib/llvm/lib/Target/X86/X86InstrInfo.h
  head/contrib/llvm/lib/Target/X86/X86InstrInfo.td
  head/contrib/llvm/lib/Target/X86/X86InstrMMX.td
  head/contrib/llvm/lib/Target/X86/X86InstrSSE.td
  head/contrib/llvm/lib/Target/X86/X86MCAsmInfo.cpp
  head/contrib/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
  head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp
  head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp
  head/contrib/llvm/lib/Target/X86/X86RegisterInfo.h
  head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td
  head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp
  head/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp
  head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp
  head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h
  head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td
  head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp
  head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h
  head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.td
  head/contrib/llvm/lib/Transforms/IPO/DeadTypeElimination.cpp
  head/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp
  head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp
  head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombine.h
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
  head/contrib/llvm/lib/Transforms/Instrumentation/PathProfiling.cpp
  head/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp
  head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp
  head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
  head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp
  head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp
  head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  head/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
  head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
  head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
  head/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
  head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
  head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
  head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
  head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
  head/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp
  head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp
  head/contrib/llvm/lib/Transforms/Utils/Local.cpp
  head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
  head/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp
  head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
  head/contrib/llvm/lib/VMCore/Attributes.cpp
  head/contrib/llvm/lib/VMCore/AutoUpgrade.cpp
  head/contrib/llvm/lib/VMCore/DebugInfoProbe.cpp
  head/contrib/llvm/lib/VMCore/Function.cpp
  head/contrib/llvm/lib/VMCore/IRBuilder.cpp
  head/contrib/llvm/lib/VMCore/InlineAsm.cpp
  head/contrib/llvm/lib/VMCore/Instructions.cpp
  head/contrib/llvm/lib/VMCore/PassManager.cpp
  head/contrib/llvm/lib/VMCore/Type.cpp
  head/contrib/llvm/lib/VMCore/Verifier.cpp
  head/contrib/llvm/tools/clang/include/clang-c/Index.h
  head/contrib/llvm/tools/clang/include/clang/AST/APValue.h
  head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h
  head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h
  head/contrib/llvm/tools/clang/include/clang/AST/Decl.h
  head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
  head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h
  head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h
  head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h
  head/contrib/llvm/tools/clang/include/clang/AST/Expr.h
  head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h
  head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
  head/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h
  head/contrib/llvm/tools/clang/include/clang/AST/Type.h
  head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h
  head/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def
  head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def
  head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
  head/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td
  head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h
  head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td
  head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td
  head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td
  head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h
  head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td
  head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  head/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h
  head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h
  head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h
  head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h
  head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h
  head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h
  head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td
  head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h
  head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def
  head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h
  head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td
  head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.td
  head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
  head/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h
  head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
  head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h
  head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticOptions.h
  head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h
  head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def
  head/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOptions.h
  head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h
  head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h
  head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h
  head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h
  head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h
  head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h
  head/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h
  head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h
  head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h
  head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h
  head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h
  head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h
  head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  head/contrib/llvm/tools/clang/include/clang/Sema/Template.h
  head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h
  head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h
  head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/GRState.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ObjCMessage.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
  head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
  head/contrib/llvm/tools/clang/lib/AST/APValue.cpp
  head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp
  head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp
  head/contrib/llvm/tools/clang/lib/AST/Decl.cpp
  head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp
  head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp
  head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp
  head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp
  head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp
  head/contrib/llvm/tools/clang/lib/AST/DumpXML.cpp
  head/contrib/llvm/tools/clang/lib/AST/Expr.cpp
  head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp
  head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  head/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp
  head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
  head/contrib/llvm/tools/clang/lib/AST/Mangle.cpp
  head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
  head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp
  head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp
  head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp
  head/contrib/llvm/tools/clang/lib/AST/Type.cpp
  head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp
  head/contrib/llvm/tools/clang/lib/Analysis/AnalysisContext.cpp
  head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp
  head/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp
  head/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp
  head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp
  head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp
  head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp
  head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp
  head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp
  head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
  head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h
  head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h
  head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h
  head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
  head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h
  head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h
  head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp
  head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  head/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp
  head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp
  head/contrib/llvm/tools/clang/lib/Driver/ToolChains.h
  head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
  head/contrib/llvm/tools/clang/lib/Driver/Tools.h
  head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp
  head/contrib/llvm/tools/clang/lib/Frontend/Warnings.cpp
  head/contrib/llvm/tools/clang/lib/Headers/emmintrin.h
  head/contrib/llvm/tools/clang/lib/Headers/mmintrin.h
  head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h
  head/contrib/llvm/tools/clang/lib/Index/CallGraph.cpp
  head/contrib/llvm/tools/clang/lib/Index/Indexer.cpp
  head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp
  head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp
  head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp
  head/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp
  head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp
  head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
  head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp
  head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp
  head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
  head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp
  head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp
  head/contrib/llvm/tools/clang/lib/Rewrite/RewriteObjC.cpp
  head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp
  head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp
  head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaCXXCast.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp
  head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp
  head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
  head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
  head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp
  head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp
  head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicStore.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CFRefCount.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CXXExprEngine.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FlatStore.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/GRState.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ObjCMessage.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
  head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp
  head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp
  head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp
  head/contrib/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp
  head/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h
  head/contrib/llvm/utils/TableGen/CodeGenRegisters.h
  head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp
  head/contrib/llvm/utils/TableGen/CodeGenTarget.h
  head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp
  head/contrib/llvm/utils/TableGen/EDEmitter.cpp
  head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp
  head/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp
  head/contrib/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp
  head/contrib/llvm/utils/TableGen/NeonEmitter.cpp
  head/contrib/llvm/utils/TableGen/Record.cpp
  head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp
  head/contrib/llvm/utils/TableGen/TGLexer.cpp
  head/contrib/llvm/utils/TableGen/TGLexer.h
  head/contrib/llvm/utils/TableGen/TGParser.h
  head/contrib/llvm/utils/TableGen/TableGen.cpp
  head/lib/clang/include/clang/Basic/Version.inc
  head/lib/clang/libclangfrontend/Makefile
  head/lib/clang/libllvmasmprinter/Makefile
  head/lib/clang/libllvmcodegen/Makefile
  head/lib/clang/libllvmmc/Makefile
  head/lib/clang/libllvmmipscodegen/Makefile
  head/sys/boot/i386/zfsboot/Makefile
  head/usr.bin/clang/tblgen/Makefile
Directory Properties:
  head/contrib/llvm/   (props changed)
  head/contrib/llvm/tools/clang/   (props changed)

Modified: head/contrib/llvm/include/llvm-c/Core.h
==============================================================================
--- head/contrib/llvm/include/llvm-c/Core.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm-c/Core.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -282,6 +282,8 @@ typedef enum {
   LLVMRealPredicateTrue   /**< Always true (always folded) */
 } LLVMRealPredicate;
 
+void LLVMInitializeCore(LLVMPassRegistryRef R);
+
 
 /*===-- Error handling ----------------------------------------------------===*/
 
@@ -1164,6 +1166,7 @@ namespace llvm {
     for (LLVMValueRef *I = Vals, *E = Vals + Length; I != E; ++I)
       cast<T>(*I);
     #endif
+    (void)Length;
     return reinterpret_cast<T**>(Vals);
   }
   

Modified: head/contrib/llvm/include/llvm-c/Disassembler.h
==============================================================================
--- head/contrib/llvm/include/llvm-c/Disassembler.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm-c/Disassembler.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -7,16 +7,16 @@
 |*                                                                            *|
 |*===----------------------------------------------------------------------===*|
 |*                                                                            *|
-|* This header provides public interface to a disassembler library.           *|
+|* This header provides a public interface to a disassembler library.         *|
 |* LLVM provides an implementation of this interface.                         *|
 |*                                                                            *|
 \*===----------------------------------------------------------------------===*/
 
 #ifndef LLVM_C_DISASSEMBLER_H
-#define LLVM_C_DISASSEMBLER_H  1
+#define LLVM_C_DISASSEMBLER_H
 
-#include <stddef.h>
 #include "llvm/Support/DataTypes.h"
+#include <stddef.h>
 
 /**
  * An opaque reference to a disassembler context.
@@ -38,14 +38,11 @@ typedef void *LLVMDisasmContextRef;
  * will be the instruction width.  The information is returned in TagBuf and is 
  * Triple specific with its specific information defined by the value of
  * TagType for that Triple.  If symbolic information is returned the function
- * returns 1 else it returns 0.
+ * returns 1, otherwise it returns 0.
  */
-typedef int (*LLVMOpInfoCallback)(void *DisInfo,
-                                  uint64_t PC,
-                                  uint64_t Offset,
-                                  uint64_t Size,
-                                  int TagType,
-                                  void *TagBuf);
+typedef int (*LLVMOpInfoCallback)(void *DisInfo, uint64_t PC,
+                                  uint64_t Offset, uint64_t Size,
+                                  int TagType, void *TagBuf);
 
 /**
  * The initial support in LLVM MC for the most general form of a relocatable
@@ -68,10 +65,11 @@ typedef int (*LLVMOpInfoCallback)(void *
  * operands like "_foo@GOT", ":lower16:_foo", etc.
  */
 struct LLVMOpInfoSymbol1 {
-  uint64_t Present; /* 1 if this symbol is present */
-  char *Name;     /* symbol name if not NULL */
-  uint64_t Value; /* symbol value if name is NULL */
+  uint64_t Present;  /* 1 if this symbol is present */
+  char *Name;        /* symbol name if not NULL */
+  uint64_t Value;    /* symbol value if name is NULL */
 };
+
 struct LLVMOpInfo1 {
   struct LLVMOpInfoSymbol1 AddSymbol;
   struct LLVMOpInfoSymbol1 SubtractSymbol;
@@ -92,11 +90,11 @@ struct LLVMOpInfo1 {
 
 /**
  * The type for the symbol lookup function.  This may be called by the
- * disassembler for such things like adding a comment for a PC plus a constant
+ * disassembler for things like adding a comment for a PC plus a constant
  * offset load instruction to use a symbol name instead of a load address value.
  * It is passed the block information is saved when the disassembler context is
  * created and a value of a symbol to look up.  If no symbol is found NULL is
- * to be returned.
+ * returned.
  */
 typedef const char *(*LLVMSymbolLookupCallback)(void *DisInfo,
                                                 uint64_t SymbolValue);
@@ -107,40 +105,33 @@ extern "C" {
 
 /**
  * Create a disassembler for the TripleName.  Symbolic disassembly is supported
- * by passing a block of information in the DisInfo parameter and specifing the
- * TagType and call back functions as described above.  These can all be passed
- * as NULL.  If successful this returns a disassembler context if not it
+ * by passing a block of information in the DisInfo parameter and specifying the
+ * TagType and callback functions as described above.  These can all be passed
+ * as NULL.  If successful, this returns a disassembler context.  If not, it
  * returns NULL.
  */
-extern LLVMDisasmContextRef
-LLVMCreateDisasm(const char *TripleName,
-                 void *DisInfo,
-                 int TagType,
-                 LLVMOpInfoCallback GetOpInfo,
-                 LLVMSymbolLookupCallback SymbolLookUp);
+LLVMDisasmContextRef LLVMCreateDisasm(const char *TripleName, void *DisInfo,
+                                      int TagType, LLVMOpInfoCallback GetOpInfo,
+                                      LLVMSymbolLookupCallback SymbolLookUp);
 
 /**
  * Dispose of a disassembler context.
  */
-extern void
-LLVMDisasmDispose(LLVMDisasmContextRef DC);
+void LLVMDisasmDispose(LLVMDisasmContextRef DC);
 
 /**
- * Disassmble a single instruction using the disassembler context specified in
- * the parameter DC.  The bytes of the instruction are specified in the parameter
- * Bytes, and contains at least BytesSize number of bytes.  The instruction is
- * at the address specified by the PC parameter.  If a valid instruction can be
- * disassembled its string is returned indirectly in OutString which whos size
- * is specified in the parameter OutStringSize.  This function returns the
- * number of bytes in the instruction or zero if there was no valid instruction.
- */
-extern size_t
-LLVMDisasmInstruction(LLVMDisasmContextRef DC,
-                      uint8_t *Bytes,
-                      uint64_t BytesSize,
-                      uint64_t PC,
-                      char *OutString,
-                      size_t OutStringSize);
+ * Disassemble a single instruction using the disassembler context specified in
+ * the parameter DC.  The bytes of the instruction are specified in the
+ * parameter Bytes, and contains at least BytesSize number of bytes.  The
+ * instruction is at the address specified by the PC parameter.  If a valid
+ * instruction can be disassembled, its string is returned indirectly in
+ * OutString whose size is specified in the parameter OutStringSize.  This
+ * function returns the number of bytes in the instruction or zero if there was
+ * no valid instruction.
+ */
+size_t LLVMDisasmInstruction(LLVMDisasmContextRef DC, uint8_t *Bytes,
+                             uint64_t BytesSize, uint64_t PC,
+                             char *OutString, size_t OutStringSize);
 
 #ifdef __cplusplus
 }

Modified: head/contrib/llvm/include/llvm/ADT/FoldingSet.h
==============================================================================
--- head/contrib/llvm/include/llvm/ADT/FoldingSet.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/ADT/FoldingSet.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -671,17 +671,10 @@ public:
 // Partial specializations of FoldingSetTrait.
 
 template<typename T> struct FoldingSetTrait<T*> {
-  static inline void Profile(const T *X, FoldingSetNodeID &ID) {
+  static inline void Profile(T *X, FoldingSetNodeID &ID) {
     ID.AddPointer(X);
   }
 };
-
-template<typename T> struct FoldingSetTrait<const T*> {
-  static inline void Profile(const T *X, FoldingSetNodeID &ID) {
-    ID.AddPointer(X);
-  }
-};
-
 } // End of namespace llvm.
 
 #endif

Copied: head/contrib/llvm/include/llvm/ADT/PackedVector.h (from r223016, vendor/llvm/dist/include/llvm/ADT/PackedVector.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/llvm/include/llvm/ADT/PackedVector.h	Sun Jun 12 18:01:31 2011	(r223017, copy of r223016, vendor/llvm/dist/include/llvm/ADT/PackedVector.h)
@@ -0,0 +1,158 @@
+//===- llvm/ADT/PackedVector.h - Packed values vector -----------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements the PackedVector class.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ADT_PACKEDVECTOR_H
+#define LLVM_ADT_PACKEDVECTOR_H
+
+#include "llvm/ADT/BitVector.h"
+#include <limits>
+
+namespace llvm {
+
+template <typename T, unsigned BitNum, bool isSigned>
+class PackedVectorBase;
+
+// This won't be necessary if we can specialize members without specializing
+// the parent template.
+template <typename T, unsigned BitNum>
+class PackedVectorBase<T, BitNum, false> {
+protected:
+  static T getValue(const llvm::BitVector &Bits, unsigned Idx) {
+    T val = T();
+    for (unsigned i = 0; i != BitNum; ++i)
+      val = T(val | ((Bits[(Idx << (BitNum-1)) + i] ? 1UL : 0UL) << i));
+    return val;
+  }
+
+  static void setValue(llvm::BitVector &Bits, unsigned Idx, T val) {
+    assert((val >> BitNum) == 0 && "value is too big");
+    for (unsigned i = 0; i != BitNum; ++i)
+      Bits[(Idx << (BitNum-1)) + i] = val & (T(1) << i);
+  }
+};
+
+template <typename T, unsigned BitNum>
+class PackedVectorBase<T, BitNum, true> {
+protected:
+  static T getValue(const llvm::BitVector &Bits, unsigned Idx) {
+    T val = T();
+    for (unsigned i = 0; i != BitNum-1; ++i)
+      val = T(val | ((Bits[(Idx << (BitNum-1)) + i] ? 1UL : 0UL) << i));
+    if (Bits[(Idx << (BitNum-1)) + BitNum-1])
+      val = ~val;
+    return val;
+  }
+
+  static void setValue(llvm::BitVector &Bits, unsigned Idx, T val) {
+    if (val < 0) {
+      val = ~val;
+      Bits.set((Idx << (BitNum-1)) + BitNum-1);
+    }
+    assert((val >> (BitNum-1)) == 0 && "value is too big");
+    for (unsigned i = 0; i != BitNum-1; ++i)
+      Bits[(Idx << (BitNum-1)) + i] = val & (T(1) << i);
+  }
+};
+
+/// \brief Store a vector of values using a specific number of bits for each
+/// value. Both signed and unsigned types can be used, e.g
+/// @code
+///   PackedVector<signed, 2> vec;
+/// @endcode
+/// will create a vector accepting values -2, -1, 0, 1. Any other value will hit
+/// an assertion.
+template <typename T, unsigned BitNum>
+class PackedVector : public PackedVectorBase<T, BitNum,
+                                            std::numeric_limits<T>::is_signed> {
+  llvm::BitVector Bits;
+  typedef PackedVectorBase<T, BitNum, std::numeric_limits<T>::is_signed> base;
+
+public:
+  class reference {
+    PackedVector &Vec;
+    const unsigned Idx;
+
+    reference();  // Undefined    
+  public:
+    reference(PackedVector &vec, unsigned idx) : Vec(vec), Idx(idx) { }    
+
+    reference &operator=(T val) {
+      Vec.setValue(Vec.Bits, Idx, val);
+      return *this;
+    }
+    operator T() {
+      return Vec.getValue(Vec.Bits, Idx);
+    }
+  };
+
+  PackedVector() { }
+  explicit PackedVector(unsigned size) : Bits(size << (BitNum-1)) { }
+
+  bool empty() const { return Bits.empty(); }
+
+  unsigned size() const { return Bits.size() >> (BitNum-1); }
+  
+  void clear() { Bits.clear(); }
+  
+  void resize(unsigned N) { Bits.resize(N << (BitNum-1)); }
+
+  void reserve(unsigned N) { Bits.reserve(N << (BitNum-1)); }
+
+  PackedVector &reset() {
+    Bits.reset();
+    return *this;
+  }
+
+  void push_back(T val) {
+    resize(size()+1);
+    (*this)[size()-1] = val;
+  }
+
+  reference operator[](unsigned Idx) {
+    return reference(*this, Idx);
+  }
+
+  T operator[](unsigned Idx) const {
+    return base::getValue(Bits, Idx);
+  }
+
+  bool operator==(const PackedVector &RHS) const {
+    return Bits == RHS.Bits;
+  }
+
+  bool operator!=(const PackedVector &RHS) const {
+    return Bits != RHS.Bits;
+  }
+
+  const PackedVector &operator=(const PackedVector &RHS) {
+    Bits = RHS.Bits;
+    return *this;
+  }
+
+  PackedVector &operator|=(const PackedVector &RHS) {
+    Bits |= RHS.Bits;
+    return *this;
+  }
+
+  void swap(PackedVector &RHS) {
+    Bits.swap(RHS.Bits);
+  }
+};
+
+// Leave BitNum=0 undefined. 
+template <typename T>
+class PackedVector<T, 0>;
+
+} // end llvm namespace
+
+#endif

Modified: head/contrib/llvm/include/llvm/ADT/StringRef.h
==============================================================================
--- head/contrib/llvm/include/llvm/ADT/StringRef.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/ADT/StringRef.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -46,7 +46,14 @@ namespace llvm {
     // integer works around this bug.
     static size_t min(size_t a, size_t b) { return a < b ? a : b; }
     static size_t max(size_t a, size_t b) { return a > b ? a : b; }
-
+    
+    // Workaround memcmp issue with null pointers (undefined behavior)
+    // by providing a specialized version
+    static int compareMemory(const char *Lhs, const char *Rhs, size_t Length) {
+      if (Length == 0) { return 0; }
+      return ::memcmp(Lhs,Rhs,Length);
+    }
+    
   public:
     /// @name Constructors
     /// @{
@@ -56,11 +63,17 @@ namespace llvm {
 
     /// Construct a string ref from a cstring.
     /*implicit*/ StringRef(const char *Str)
-      : Data(Str), Length(::strlen(Str)) {}
+      : Data(Str) {
+        assert(Str && "StringRef cannot be built from a NULL argument");
+        Length = ::strlen(Str); // invoking strlen(NULL) is undefined behavior
+      }
 
     /// Construct a string ref from a pointer and length.
     /*implicit*/ StringRef(const char *data, size_t length)
-      : Data(data), Length(length) {}
+      : Data(data), Length(length) {
+        assert((data || length == 0) &&
+        "StringRef cannot be built from a NULL argument with non-null length");
+      }
 
     /// Construct a string ref from an std::string.
     /*implicit*/ StringRef(const std::string &Str)
@@ -104,7 +117,7 @@ namespace llvm {
     /// compare() when the relative ordering of inequal strings isn't needed.
     bool equals(StringRef RHS) const {
       return (Length == RHS.Length &&
-              memcmp(Data, RHS.Data, RHS.Length) == 0);
+              compareMemory(Data, RHS.Data, RHS.Length) == 0);
     }
 
     /// equals_lower - Check for string equality, ignoring case.
@@ -116,7 +129,7 @@ namespace llvm {
     /// is lexicographically less than, equal to, or greater than the \arg RHS.
     int compare(StringRef RHS) const {
       // Check the prefix for a mismatch.
-      if (int Res = memcmp(Data, RHS.Data, min(Length, RHS.Length)))
+      if (int Res = compareMemory(Data, RHS.Data, min(Length, RHS.Length)))
         return Res < 0 ? -1 : 1;
 
       // Otherwise the prefixes match, so we only need to check the lengths.
@@ -183,13 +196,13 @@ namespace llvm {
     /// startswith - Check if this string starts with the given \arg Prefix.
     bool startswith(StringRef Prefix) const {
       return Length >= Prefix.Length &&
-             memcmp(Data, Prefix.Data, Prefix.Length) == 0;
+             compareMemory(Data, Prefix.Data, Prefix.Length) == 0;
     }
 
     /// endswith - Check if this string ends with the given \arg Suffix.
     bool endswith(StringRef Suffix) const {
       return Length >= Suffix.Length &&
-             memcmp(end() - Suffix.Length, Suffix.Data, Suffix.Length) == 0;
+        compareMemory(end() - Suffix.Length, Suffix.Data, Suffix.Length) == 0;
     }
 
     /// @}
@@ -447,6 +460,10 @@ namespace llvm {
     return LHS.compare(RHS) != -1;
   }
 
+  inline std::string &operator+=(std::string &buffer, llvm::StringRef string) {
+    return buffer.append(string.data(), string.size());
+  }
+
   /// @}
 
   // StringRefs can be treated like a POD type.

Modified: head/contrib/llvm/include/llvm/ADT/Triple.h
==============================================================================
--- head/contrib/llvm/include/llvm/ADT/Triple.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/ADT/Triple.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -225,7 +225,7 @@ public:
   /// if the environment component is present).
   StringRef getOSAndEnvironmentName() const;
 
-  /// getOSNumber - Parse the version number from the OS name component of the
+  /// getOSVersion - Parse the version number from the OS name component of the
   /// triple, if present.
   ///
   /// For example, "fooos1.2.3" would return (1, 2, 3).

Modified: head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -38,6 +38,7 @@
 #define LLVM_ANALYSIS_ALIAS_ANALYSIS_H
 
 #include "llvm/Support/CallSite.h"
+#include "llvm/ADT/DenseMap.h"
 
 namespace llvm {
 
@@ -488,6 +489,32 @@ public:
   }
 };
 
+// Specialize DenseMapInfo for Location.
+template<>
+struct DenseMapInfo<AliasAnalysis::Location> {
+  static inline AliasAnalysis::Location getEmptyKey() {
+    return
+      AliasAnalysis::Location(DenseMapInfo<const Value *>::getEmptyKey(),
+                              0, 0);
+  }
+  static inline AliasAnalysis::Location getTombstoneKey() {
+    return
+      AliasAnalysis::Location(DenseMapInfo<const Value *>::getTombstoneKey(),
+                              0, 0);
+  }
+  static unsigned getHashValue(const AliasAnalysis::Location &Val) {
+    return DenseMapInfo<const Value *>::getHashValue(Val.Ptr) ^
+           DenseMapInfo<uint64_t>::getHashValue(Val.Size) ^
+           DenseMapInfo<const MDNode *>::getHashValue(Val.TBAATag);
+  }
+  static bool isEqual(const AliasAnalysis::Location &LHS,
+                      const AliasAnalysis::Location &RHS) {
+    return LHS.Ptr == RHS.Ptr &&
+           LHS.Size == RHS.Size &&
+           LHS.TBAATag == RHS.TBAATag;
+  }
+};
+
 /// isNoAliasCall - Return true if this pointer is returned by a noalias
 /// function.
 bool isNoAliasCall(const Value *V);

Copied: head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h (from r223016, vendor/llvm/dist/include/llvm/Analysis/BranchProbabilityInfo.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h	Sun Jun 12 18:01:31 2011	(r223017, copy of r223016, vendor/llvm/dist/include/llvm/Analysis/BranchProbabilityInfo.h)
@@ -0,0 +1,78 @@
+//===--- BranchProbabilityInfo.h - Branch Probability Analysis --*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This pass is used to evaluate branch probabilties.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ANALYSIS_BRANCHPROBABILITYINFO_H
+#define LLVM_ANALYSIS_BRANCHPROBABILITYINFO_H
+
+#include "llvm/InitializePasses.h"
+#include "llvm/Support/BranchProbability.h"
+#include "llvm/Analysis/LoopInfo.h"
+
+namespace llvm {
+
+class raw_ostream;
+
+class BranchProbabilityInfo : public FunctionPass {
+
+  // Default weight value. Used when we don't have information about the edge.
+  static const uint32_t DEFAULT_WEIGHT = 16;
+
+  typedef std::pair<BasicBlock *, BasicBlock *> Edge;
+
+  DenseMap<Edge, uint32_t> Weights;
+
+  // Get sum of the block successors' weights.
+  uint32_t getSumForBlock(BasicBlock *BB) const;
+
+public:
+  static char ID;
+
+  BranchProbabilityInfo() : FunctionPass(ID) {
+    initializeBranchProbabilityInfoPass(*PassRegistry::getPassRegistry());
+  }
+
+  void getAnalysisUsage(AnalysisUsage &AU) const {
+    AU.addRequired<LoopInfo>();
+    AU.setPreservesAll();
+  }
+
+  bool runOnFunction(Function &F);
+
+  // Returned value is between 1 and UINT32_MAX. Look at
+  // BranchProbabilityInfo.cpp for details.
+  uint32_t getEdgeWeight(BasicBlock *Src, BasicBlock *Dst) const;
+
+  // Look at BranchProbabilityInfo.cpp for details. Use it with caution!
+  void setEdgeWeight(BasicBlock *Src, BasicBlock *Dst, uint32_t Weight);
+
+  // A 'Hot' edge is an edge which probability is >= 80%.
+  bool isEdgeHot(BasicBlock *Src, BasicBlock *Dst) const;
+
+  // Return a hot successor for the block BB or null if there isn't one.
+  BasicBlock *getHotSucc(BasicBlock *BB) const;
+
+  // Return a probability as a fraction between 0 (0% probability) and
+  // 1 (100% probability), however the value is never equal to 0, and can be 1
+  // only iff SRC block has only one successor.
+  BranchProbability getEdgeProbability(BasicBlock *Src, BasicBlock *Dst) const;
+
+  // Print value between 0 (0% probability) and 1 (100% probability),
+  // however the value is never equal to 0, and can be 1 only iff SRC block
+  // has only one successor.
+  raw_ostream &printEdgeProbability(raw_ostream &OS, BasicBlock *Src,
+                                    BasicBlock *Dst) const;
+};
+
+}
+
+#endif

Modified: head/contrib/llvm/include/llvm/Analysis/CallGraph.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/CallGraph.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/CallGraph.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -259,6 +259,9 @@ public:
   /// addCalledFunction - Add a function to the list of functions called by this
   /// one.
   void addCalledFunction(CallSite CS, CallGraphNode *M) {
+    assert(!CS.getInstruction() ||
+           !CS.getCalledFunction() ||
+           !CS.getCalledFunction()->isIntrinsic());
     CalledFunctions.push_back(std::make_pair(CS.getInstruction(), M));
     M->AddRef();
   }

Modified: head/contrib/llvm/include/llvm/Analysis/DIBuilder.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/DIBuilder.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/DIBuilder.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -117,8 +117,9 @@ namespace llvm {
     /// @param Name        Typedef name.
     /// @param File        File where this type is defined.
     /// @param LineNo      Line number.
+    /// @param Context     The surrounding context for the typedef.
     DIType createTypedef(DIType Ty, StringRef Name, DIFile File, 
-                         unsigned LineNo);
+                         unsigned LineNo, DIDescriptor Context);
 
     /// createFriend - Create debugging information entry for a 'friend'.
     DIType createFriend(DIType Ty, DIType FriendTy);

Modified: head/contrib/llvm/include/llvm/Analysis/DebugInfo.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/DebugInfo.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/DebugInfo.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -49,15 +49,16 @@ namespace llvm {
   class DIDescriptor {
   public:
     enum {
-      FlagPrivate          = 1 << 0,
-      FlagProtected        = 1 << 1,
-      FlagFwdDecl          = 1 << 2,
-      FlagAppleBlock       = 1 << 3,
-      FlagBlockByrefStruct = 1 << 4,
-      FlagVirtual          = 1 << 5,
-      FlagArtificial       = 1 << 6,
-      FlagExplicit         = 1 << 7,
-      FlagPrototyped       = 1 << 8
+      FlagPrivate            = 1 << 0,
+      FlagProtected          = 1 << 1,
+      FlagFwdDecl            = 1 << 2,
+      FlagAppleBlock         = 1 << 3,
+      FlagBlockByrefStruct   = 1 << 4,
+      FlagVirtual            = 1 << 5,
+      FlagArtificial         = 1 << 6,
+      FlagExplicit           = 1 << 7,
+      FlagPrototyped         = 1 << 8,
+      FlagObjcClassComplete  = 1 << 9
     };
   protected:
     const MDNode *DbgNode;
@@ -271,6 +272,9 @@ namespace llvm {
     bool isArtificial() const {
       return (getFlags() & FlagArtificial) != 0;
     }
+    bool isObjcClassComplete() const {
+      return (getFlags() & FlagObjcClassComplete) != 0;
+    }
     bool isValid() const {
       return DbgNode && (isBasicType() || isDerivedType() || isCompositeType());
     }

Modified: head/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -14,8 +14,8 @@
 #ifndef LLVM_ANALYSIS_FINDUSEDTYPES_H
 #define LLVM_ANALYSIS_FINDUSEDTYPES_H
 
+#include "llvm/ADT/SetVector.h"
 #include "llvm/Pass.h"
-#include <set>
 
 namespace llvm {
 
@@ -23,7 +23,7 @@ class Type;
 class Value;
 
 class FindUsedTypes : public ModulePass {
-  std::set<const Type *> UsedTypes;
+  SetVector<const Type *> UsedTypes;
 public:
   static char ID; // Pass identification, replacement for typeid
   FindUsedTypes() : ModulePass(ID) {
@@ -33,7 +33,7 @@ public:
   /// getTypes - After the pass has been run, return the set containing all of
   /// the types used in the module.
   ///
-  const std::set<const Type *> &getTypes() const { return UsedTypes; }
+  const SetVector<const Type *> &getTypes() const { return UsedTypes; }
 
   /// Print the types found in the module.  If the optional Module parameter is
   /// passed in, then the types are printed symbolically if possible, using the

Modified: head/contrib/llvm/include/llvm/Analysis/IVUsers.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/IVUsers.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/IVUsers.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -37,8 +37,8 @@ class TargetData;
 class IVStrideUse : public CallbackVH, public ilist_node<IVStrideUse> {
   friend class IVUsers;
 public:
-  IVStrideUse(IVUsers *P, Instruction* U, Value *O)
-    : CallbackVH(U), Parent(P), OperandValToReplace(O) {
+  IVStrideUse(IVUsers *P, Instruction* U, Value *O, Value *PN)
+    : CallbackVH(U), Parent(P), OperandValToReplace(O), Phi(PN) {
   }
 
   /// getUser - Return the user instruction for this use.
@@ -51,6 +51,11 @@ public:
     setValPtr(NewUser);
   }
 
+  /// getPhi - Return the phi node that represents this IV.
+  PHINode *getPhi() const {
+    return cast<PHINode>(Phi);
+  }
+
   /// getOperandValToReplace - Return the Value of the operand in the user
   /// instruction that this IVStrideUse is representing.
   Value *getOperandValToReplace() const {
@@ -81,6 +86,9 @@ private:
   /// that this IVStrideUse is representing.
   WeakVH OperandValToReplace;
 
+  /// Phi - The loop header phi that represents this IV.
+  WeakVH Phi;
+
   /// PostIncLoops - The set of loops for which Expr has been adjusted to
   /// use post-inc mode. This corresponds with SCEVExpander's post-inc concept.
   PostIncLoopSet PostIncLoops;
@@ -143,9 +151,9 @@ public:
   /// AddUsersIfInteresting - Inspect the specified Instruction.  If it is a
   /// reducible SCEV, recursively add its users to the IVUsesByStride set and
   /// return true.  Otherwise, return false.
-  bool AddUsersIfInteresting(Instruction *I);
+  bool AddUsersIfInteresting(Instruction *I, PHINode *Phi);
 
-  IVStrideUse &AddUser(Instruction *User, Value *Operand);
+  IVStrideUse &AddUser(Instruction *User, Value *Operand, PHINode *Phi);
 
   /// getReplacementExpr - Return a SCEV expression which computes the
   /// value of the OperandValToReplace of the given IVStrideUse.

Modified: head/contrib/llvm/include/llvm/Analysis/RegionPass.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/RegionPass.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/RegionPass.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -109,7 +109,7 @@ public:
   /// @brief Print passes managed by this manager.
   void dumpPassStructure(unsigned Offset);
 
-  /// @brief Print passes contained by this manager.
+  /// @brief Get passes contained by this manager.
   Pass *getContainedPass(unsigned N) {
     assert(N < PassVector.size() && "Pass number out of range!");
     Pass *FP = static_cast<Pass *>(PassVector[N]);

Modified: head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
==============================================================================
--- head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -270,30 +270,30 @@ namespace llvm {
 
     /// BackedgeTakenCounts - Cache the backedge-taken count of the loops for
     /// this function as they are computed.
-    std::map<const Loop*, BackedgeTakenInfo> BackedgeTakenCounts;
+    DenseMap<const Loop*, BackedgeTakenInfo> BackedgeTakenCounts;
 
     /// ConstantEvolutionLoopExitValue - This map contains entries for all of
     /// the PHI instructions that we attempt to compute constant evolutions for.
     /// This allows us to avoid potentially expensive recomputation of these
     /// properties.  An instruction maps to null if we are unable to compute its
     /// exit value.
-    std::map<PHINode*, Constant*> ConstantEvolutionLoopExitValue;
+    DenseMap<PHINode*, Constant*> ConstantEvolutionLoopExitValue;
 
     /// ValuesAtScopes - This map contains entries for all the expressions
     /// that we attempt to compute getSCEVAtScope information for, which can
     /// be expensive in extreme cases.
-    std::map<const SCEV *,
+    DenseMap<const SCEV *,
              std::map<const Loop *, const SCEV *> > ValuesAtScopes;
 
     /// LoopDispositions - Memoized computeLoopDisposition results.
-    std::map<const SCEV *,
+    DenseMap<const SCEV *,
              std::map<const Loop *, LoopDisposition> > LoopDispositions;
 
     /// computeLoopDisposition - Compute a LoopDisposition value.
     LoopDisposition computeLoopDisposition(const SCEV *S, const Loop *L);
 
     /// BlockDispositions - Memoized computeBlockDisposition results.
-    std::map<const SCEV *,
+    DenseMap<const SCEV *,
              std::map<const BasicBlock *, BlockDisposition> > BlockDispositions;
 
     /// computeBlockDisposition - Compute a BlockDisposition value.

Modified: head/contrib/llvm/include/llvm/Argument.h
==============================================================================
--- head/contrib/llvm/include/llvm/Argument.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Argument.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -51,6 +51,9 @@ public:
   /// hasByValAttr - Return true if this argument has the byval attribute on it
   /// in its containing function.
   bool hasByValAttr() const;
+  
+  /// getParamAlignment - If this is a byval argument, return its alignment.
+  unsigned getParamAlignment() const;
 
   /// hasNestAttr - Return true if this argument has the nest attribute on
   /// it in its containing function.

Modified: head/contrib/llvm/include/llvm/Attributes.h
==============================================================================
--- head/contrib/llvm/include/llvm/Attributes.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/Attributes.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -67,6 +67,20 @@ const Attributes StackAlignment  = 7<<26
                                           ///alignstack(1))
 const Attributes Hotpatch    = 1<<29;     ///< Function should have special
                                           ///'hotpatch' sequence in prologue
+const Attributes UWTable     = 1<<30;     ///< Function must be in a unwind
+                                          ///table
+
+/// Note that uwtable is about the ABI or the user mandating an entry in the
+/// unwind table. The nounwind attribute is about an exception passing by the
+/// function.
+/// In a theoretical system that uses tables for profiling and sjlj for
+/// exceptions, they would be fully independent. In a normal system that
+/// uses tables for both, the semantics are:
+/// nil                = Needs an entry because an exception might pass by.
+/// nounwind           = No need for an entry
+/// uwtable            = Needs an entry because the ABI says so and because
+///                      an exception might pass by.
+/// uwtable + nounwind = Needs an entry because the ABI says so.
 
 /// @brief Attributes that only apply to function parameters.
 const Attributes ParameterOnly = ByVal | Nest | StructRet | NoCapture;
@@ -76,7 +90,7 @@ const Attributes ParameterOnly = ByVal |
 const Attributes FunctionOnly = NoReturn | NoUnwind | ReadNone | ReadOnly |
   NoInline | AlwaysInline | OptimizeForSize | StackProtect | StackProtectReq |
   NoRedZone | NoImplicitFloat | Naked | InlineHint | StackAlignment |
-  Hotpatch;
+  Hotpatch | UWTable;
 
 /// @brief Parameter attributes that do not apply to vararg call arguments.
 const Attributes VarArgsIncompatible = StructRet;

Modified: head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -185,7 +185,14 @@ namespace llvm {
 
     void emitPrologLabel(const MachineInstr &MI);
 
-    bool needsCFIMoves();
+    enum CFIMoveType {
+      CFI_M_None,
+      CFI_M_EH,
+      CFI_M_Debug
+    };
+    CFIMoveType needsCFIMoves();
+
+    bool needsSEHMoves();
 
     /// EmitConstantPool - Print to the current output stream assembly
     /// representations of the constants in the constant pool MCP. This is
@@ -381,10 +388,6 @@ namespace llvm {
     /// operands.
     virtual MachineLocation getDebugValueLocation(const MachineInstr *MI) const;
 
-    /// getDwarfRegOpSize - get size required to emit given machine location
-    /// using dwarf encoding.
-    virtual unsigned getDwarfRegOpSize(const MachineLocation &MLoc) const;
-
     /// getISAEncoding - Get the value for DW_AT_APPLE_isa. Zero if no isa
     /// encoding specified.
     virtual unsigned getISAEncoding() { return 0; }
@@ -396,12 +399,9 @@ namespace llvm {
     // Dwarf Lowering Routines
     //===------------------------------------------------------------------===//
 
-    /// EmitFrameMoves - Emit frame instructions to describe the layout of the
+    /// EmitCFIFrameMove - Emit frame instruction to describe the layout of the
     /// frame.
-    void EmitFrameMoves(const std::vector<MachineMove> &Moves,
-                        MCSymbol *BaseLabel, bool isEH) const;
     void EmitCFIFrameMove(const MachineMove &Move) const;
-    void EmitCFIFrameMoves(const std::vector<MachineMove> &Moves) const;
 
     //===------------------------------------------------------------------===//
     // Inline Asm Support

Modified: head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -16,6 +16,7 @@
 #define LLVM_CODEGEN_CALLINGCONVLOWER_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/ValueTypes.h"
 #include "llvm/Target/TargetCallingConv.h"
 #include "llvm/CallingConv.h"
@@ -141,14 +142,19 @@ typedef bool CCCustomFn(unsigned &ValNo,
                         MVT &LocVT, CCValAssign::LocInfo &LocInfo,
                         ISD::ArgFlagsTy &ArgFlags, CCState &State);
 
-typedef enum { Invalid, Prologue, Call } ParmContext;
+/// ParmContext - This enum tracks whether calling convention lowering is in
+/// the context of prologue or call generation. Not all backends make use of
+/// this information.
+typedef enum { Unknown, Prologue, Call } ParmContext;
 
 /// CCState - This class holds information needed while lowering arguments and
 /// return values.  It captures which registers are already assigned and which
 /// stack slots are used.  It provides accessors to allocate these values.
 class CCState {
+private:
   CallingConv::ID CallingConv;
   bool IsVarArg;
+  MachineFunction &MF;
   const TargetMachine &TM;
   const TargetRegisterInfo &TRI;
   SmallVector<CCValAssign, 16> &Locs;
@@ -158,10 +164,14 @@ class CCState {
   SmallVector<uint32_t, 16> UsedRegs;
   unsigned FirstByValReg;
   bool FirstByValRegValid;
+
+protected:
   ParmContext CallOrPrologue;
+
 public:
-  CCState(CallingConv::ID CC, bool isVarArg, const TargetMachine &TM,
-          SmallVector<CCValAssign, 16> &locs, LLVMContext &C);
+  CCState(CallingConv::ID CC, bool isVarArg, MachineFunction &MF,
+          const TargetMachine &TM, SmallVector<CCValAssign, 16> &locs,
+          LLVMContext &C);
 
   void addLoc(const CCValAssign &V) {
     Locs.push_back(V);
@@ -169,6 +179,7 @@ public:
 
   LLVMContext &getContext() const { return Context; }
   const TargetMachine &getTarget() const { return TM; }
+  MachineFunction &getMachineFunction() const { return MF; }
   CallingConv::ID getCallingConv() const { return CallingConv; }
   bool isVarArg() const { return IsVarArg; }
 
@@ -301,7 +312,6 @@ public:
   bool isFirstByValRegValid() { return FirstByValRegValid; }
 
   ParmContext getCallOrPrologue() { return CallOrPrologue; }
-  void setCallOrPrologue(ParmContext pc) { CallOrPrologue = pc; }
 
 private:
   /// MarkAllocated - Mark a register and all of its aliases as allocated.

Modified: head/contrib/llvm/include/llvm/CodeGen/FastISel.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/FastISel.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/FastISel.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -241,6 +241,15 @@ protected:
                            unsigned Op0, bool Op0IsKill,
                            unsigned Op1, bool Op1IsKill);
 
+  /// FastEmitInst_rrr - Emit a MachineInstr with three register operands
+  /// and a result register in the given register class.
+  ///
+  unsigned FastEmitInst_rrr(unsigned MachineInstOpcode,
+                           const TargetRegisterClass *RC,
+                           unsigned Op0, bool Op0IsKill,
+                           unsigned Op1, bool Op1IsKill,
+                           unsigned Op2, bool Op2IsKill);
+
   /// FastEmitInst_ri - Emit a MachineInstr with a register operand,
   /// an immediate, and a result register in the given register class.
   ///
@@ -301,7 +310,7 @@ protected:
   /// the CFG.
   void FastEmitBranch(MachineBasicBlock *MBB, DebugLoc DL);
 
-  unsigned UpdateValueMap(const Value* I, unsigned Reg);
+  void UpdateValueMap(const Value* I, unsigned Reg, unsigned NumRegs = 1);
 
   unsigned createResultReg(const TargetRegisterClass *RC);
 
@@ -334,6 +343,8 @@ private:
 
   bool SelectCast(const User *I, unsigned Opcode);
 
+  bool SelectExtractValue(const User *I);
+
   /// HandlePHINodesInSuccessorBlocks - Handle PHI nodes in successor blocks.
   /// Emit code to ensure constants are copied into registers when needed.
   /// Remember the virtual registers that need to be added to the Machine PHI

Modified: head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -107,11 +107,11 @@ namespace ISD {
     // and returns an outchain.
     EH_SJLJ_LONGJMP,
 
-    // OUTCHAIN = EH_SJLJ_DISPATCHSETUP(INCHAIN, context)
+    // OUTCHAIN = EH_SJLJ_DISPATCHSETUP(INCHAIN, setjmpval)
     // This corresponds to the eh.sjlj.dispatchsetup intrinsic. It takes an
-    // input chain and a pointer to the sjlj function context as inputs and
-    // returns an outchain. By default, this does nothing. Targets can lower
-    // this to unwind setup code if needed.
+    // input chain and the value returning from setjmp as inputs and returns an
+    // outchain. By default, this does nothing. Targets can lower this to unwind
+    // setup code if needed.
     EH_SJLJ_DISPATCHSETUP,
 
     // TargetConstant* - Like Constant*, but the DAG does not do any folding,

Modified: head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -492,9 +492,10 @@ namespace llvm {
 
     /// Returns true if the live interval is zero length, i.e. no live ranges
     /// span instructions. It doesn't pay to spill such an interval.
-    bool isZeroLength() const {
+    bool isZeroLength(SlotIndexes *Indexes) const {
       for (const_iterator i = begin(), e = end(); i != e; ++i)
-        if (i->end.getPrevIndex() > i->start)
+        if (Indexes->getNextNonNullIndex(i->start).getBaseIndex() <
+            i->end.getBaseIndex())
           return false;
       return true;
     }

Modified: head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -229,6 +229,7 @@ public:
 
   enum MICheckType {
     CheckDefs,      // Check all operands for equality
+    CheckKillDead,  // Check all operands including kill / dead markers
     IgnoreDefs,     // Ignore all definitions
     IgnoreVRegDefs  // Ignore virtual register definitions
   };

Modified: head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -88,7 +88,7 @@ public:
     return *this;
   }
 
-  const MachineInstrBuilder &addFrameIndex(unsigned Idx) const {
+  const MachineInstrBuilder &addFrameIndex(int Idx) const {
     MI->addOperand(MachineOperand::CreateFI(Idx));
     return *this;
   }

Modified: head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h
==============================================================================
--- head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h	Sun Jun 12 15:46:57 2011	(r223016)
+++ head/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h	Sun Jun 12 18:01:31 2011	(r223017)
@@ -52,27 +52,13 @@ namespace llvm {
 class Constant;
 class GlobalVariable;
 class MDNode;
+class MMIAddrLabelMap;
 class MachineBasicBlock;
 class MachineFunction;
 class Module;
 class PointerType;
 class StructType;
 
-/// MachineModuleInfoImpl - This class can be derived from and used by targets
-/// to hold private target-specific information for each Module.  Objects of
-/// type are accessed/created with MMI::getInfo and destroyed when the
-/// MachineModuleInfo is destroyed.
-class MachineModuleInfoImpl {
-public:
-  typedef PointerIntPair<MCSymbol*, 1, bool> StubValueTy;
-  virtual ~MachineModuleInfoImpl();

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



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