svn commit: r293838 - in vendor/llvm/dist: cmake/modules docs docs/CommandGuide examples/Kaleidoscope/Orc/fully_lazy include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/CodeGen include...

Dimitry Andric dim at FreeBSD.org
Wed Jan 13 19:58:05 UTC 2016


Author: dim
Date: Wed Jan 13 19:58:01 2016
New Revision: 293838
URL: https://svnweb.freebsd.org/changeset/base/293838

Log:
  Vendor import of llvm trunk r257626:
  https://llvm.org/svn/llvm-project/llvm/trunk@257626

Added:
  vendor/llvm/dist/include/llvm/ADT/PointerEmbeddedInt.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ADT/PointerSumType.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcError.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCChannel.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/RPCUtils.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/Support/ELFRelocs/WebAssembly.def
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcArchitectureSupport.cpp   (contents, props changed)
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcError.cpp   (contents, props changed)
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Fuzzer/test/fuzzer-dict.test
  vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/AMDGPU/SIMachineScheduler.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/AVR/AVR.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/AVR/AVRSelectionDAGInfo.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/AVR/AVRTargetObjectFile.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/AVR/AVRTargetObjectFile.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/HexagonRDF.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/HexagonRDF.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/HexagonRDFOpt.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFCopy.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFDeadCode.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFGraph.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.h   (contents, props changed)
  vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/
  vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/CMakeLists.txt   (contents, props changed)
  vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/LLVMBuild.txt   (contents, props changed)
  vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/Makefile   (contents, props changed)
  vendor/llvm/dist/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h   (contents, props changed)
  vendor/llvm/dist/test/Analysis/LoopAccessAnalysis/interleave-innermost.ll
  vendor/llvm/dist/test/CodeGen/AArch64/arm64-misched-memdep-bug.ll
  vendor/llvm/dist/test/CodeGen/AArch64/branch-folder-merge-mmos.ll
  vendor/llvm/dist/test/CodeGen/AArch64/machine-combiner.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-note-no-func.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/ret.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/si-scheduler.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.i64.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.i64.ll
  vendor/llvm/dist/test/CodeGen/ARM/bit-reverse-to-rbit.ll
  vendor/llvm/dist/test/CodeGen/ARM/cxx-tlscc.ll
  vendor/llvm/dist/test/CodeGen/ARM/darwin-tls.ll
  vendor/llvm/dist/test/CodeGen/ARM/fabs-to-bfc.ll
  vendor/llvm/dist/test/CodeGen/ARM/fp16-v3.ll
  vendor/llvm/dist/test/CodeGen/ARM/inlineasm-imm-thumb.ll
  vendor/llvm/dist/test/CodeGen/ARM/inlineasm-imm-thumb2.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/bit-phi.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/rdf-copy.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/rdf-dead-loop.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2016-01-07-BranchWeightCrash.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppc64le-localentry-large.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/pr25802.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/tls_get_addr_clobbers.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/tls_get_addr_stackframe.ll
  vendor/llvm/dist/test/CodeGen/SPARC/analyze-branch.ll
  vendor/llvm/dist/test/CodeGen/X86/catchpad-lifetime.ll
  vendor/llvm/dist/test/CodeGen/X86/shrinkwrap-hang.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-vector.ll
  vendor/llvm/dist/test/CodeGen/X86/version_directive.ll
  vendor/llvm/dist/test/DebugInfo/X86/debug-macro.ll
  vendor/llvm/dist/test/Instrumentation/MemorySanitizer/origin-array.ll
  vendor/llvm/dist/test/Linker/Inputs/pr26037.ll
  vendor/llvm/dist/test/Linker/pr26037.ll
  vendor/llvm/dist/test/MC/ARM/twice.ll
  vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/funcimport_alias.ll
  vendor/llvm/dist/test/Transforms/FunctionImport/funcimport_alias.ll
  vendor/llvm/dist/test/Transforms/IPConstantProp/PR16052.ll
  vendor/llvm/dist/test/Transforms/IPConstantProp/PR26044.ll
  vendor/llvm/dist/test/Transforms/InstCombine/printf-3.ll
  vendor/llvm/dist/test/Transforms/JumpThreading/pr26096.ll
  vendor/llvm/dist/test/Transforms/Reassociate/add_across_block_crash.ll
  vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector-nosplit.ll
  vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/two-invokes-one-landingpad.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/bug-25299.ll
  vendor/llvm/dist/test/Transforms/Util/split-bit-piece.ll
  vendor/llvm/dist/test/tools/llvm-lto/error.ll
  vendor/llvm/dist/test/tools/llvm-objdump/Inputs/malformed-macho.bin   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-objdump/X86/macho-private-header.test
  vendor/llvm/dist/test/tools/llvm-objdump/malformed-macho.test
  vendor/llvm/dist/test/tools/llvm-symbolizer/print_context.c   (contents, props changed)
  vendor/llvm/dist/tools/lli/RemoteJITUtils.h   (contents, props changed)
  vendor/llvm/dist/unittests/ADT/PointerEmbeddedIntTest.cpp   (contents, props changed)
  vendor/llvm/dist/unittests/ADT/PointerSumTypeTest.cpp   (contents, props changed)
  vendor/llvm/dist/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp   (contents, props changed)
  vendor/llvm/dist/unittests/IR/AsmWriterTest.cpp   (contents, props changed)
Deleted:
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcTargetSupport.cpp
  vendor/llvm/dist/test/Analysis/GlobalsModRef/nocapture.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/cross-module-sm-pic-a.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/multi-module-sm-pic-a.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/cross-module-sm-pic-a.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/multi-module-sm-pic-a.ll
  vendor/llvm/dist/test/Transforms/InstCombine/pow-exp2.ll
  vendor/llvm/dist/tools/lli/RPCChannel.h
  vendor/llvm/dist/tools/lli/RemoteMemoryManager.cpp
  vendor/llvm/dist/tools/lli/RemoteMemoryManager.h
  vendor/llvm/dist/tools/lli/RemoteTarget.cpp
  vendor/llvm/dist/tools/lli/RemoteTarget.h
  vendor/llvm/dist/tools/lli/RemoteTargetExternal.cpp
  vendor/llvm/dist/tools/lli/RemoteTargetExternal.h
  vendor/llvm/dist/tools/lli/RemoteTargetMessage.h
  vendor/llvm/dist/tools/lli/Unix/
  vendor/llvm/dist/tools/lli/Windows/
Modified:
  vendor/llvm/dist/cmake/modules/AddLLVM.cmake
  vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
  vendor/llvm/dist/docs/AliasAnalysis.rst
  vendor/llvm/dist/docs/CommandGuide/llvm-symbolizer.rst
  vendor/llvm/dist/docs/ExceptionHandling.rst
  vendor/llvm/dist/docs/GettingStartedVS.rst
  vendor/llvm/dist/docs/LangRef.rst
  vendor/llvm/dist/docs/Phabricator.rst
  vendor/llvm/dist/docs/ProgrammersManual.rst
  vendor/llvm/dist/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp
  vendor/llvm/dist/include/llvm/ADT/IntEqClasses.h
  vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h
  vendor/llvm/dist/include/llvm/ADT/Twine.h
  vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h
  vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/AsmPrinter.h
  vendor/llvm/dist/include/llvm/CodeGen/DIE.h
  vendor/llvm/dist/include/llvm/CodeGen/LiveInterval.h
  vendor/llvm/dist/include/llvm/CodeGen/RegisterPressure.h
  vendor/llvm/dist/include/llvm/CodeGen/WinEHFuncInfo.h
  vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/DIPrinter.h
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
  vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
  vendor/llvm/dist/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
  vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyld.h
  vendor/llvm/dist/include/llvm/IR/Attributes.td
  vendor/llvm/dist/include/llvm/IR/Function.h
  vendor/llvm/dist/include/llvm/IR/IRBuilder.h
  vendor/llvm/dist/include/llvm/IR/Intrinsics.td
  vendor/llvm/dist/include/llvm/IR/IntrinsicsX86.td
  vendor/llvm/dist/include/llvm/IR/LLVMContext.h
  vendor/llvm/dist/include/llvm/IR/Metadata.h
  vendor/llvm/dist/include/llvm/InitializePasses.h
  vendor/llvm/dist/include/llvm/LinkAllPasses.h
  vendor/llvm/dist/include/llvm/Linker/Linker.h
  vendor/llvm/dist/include/llvm/MC/MCExpr.h
  vendor/llvm/dist/include/llvm/MC/MCObjectFileInfo.h
  vendor/llvm/dist/include/llvm/MC/MCStreamer.h
  vendor/llvm/dist/include/llvm/Object/COFF.h
  vendor/llvm/dist/include/llvm/Object/ELFObjectFile.h
  vendor/llvm/dist/include/llvm/Pass.h
  vendor/llvm/dist/include/llvm/ProfileData/CoverageMapping.h
  vendor/llvm/dist/include/llvm/ProfileData/InstrProf.h
  vendor/llvm/dist/include/llvm/ProfileData/InstrProfData.inc
  vendor/llvm/dist/include/llvm/ProfileData/SampleProf.h
  vendor/llvm/dist/include/llvm/Support/ARMTargetParser.def
  vendor/llvm/dist/include/llvm/Support/Allocator.h
  vendor/llvm/dist/include/llvm/Support/COFF.h
  vendor/llvm/dist/include/llvm/Support/ELF.h
  vendor/llvm/dist/include/llvm/Support/GenericDomTree.h
  vendor/llvm/dist/include/llvm/Support/MathExtras.h
  vendor/llvm/dist/include/llvm/Transforms/IPO.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h
  vendor/llvm/dist/include/llvm/module.modulemap
  vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/CallGraphSCCPass.cpp
  vendor/llvm/dist/lib/Analysis/GlobalsModRef.cpp
  vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp
  vendor/llvm/dist/lib/Analysis/LoopAccessAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/LoopInfo.cpp
  vendor/llvm/dist/lib/Analysis/LoopPass.cpp
  vendor/llvm/dist/lib/Analysis/ScopedNoAliasAA.cpp
  vendor/llvm/dist/lib/Analysis/TypeBasedAliasAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/ValueTracking.cpp
  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/DwarfDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp
  vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp
  vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp
  vendor/llvm/dist/lib/CodeGen/LiveDebugValues.cpp
  vendor/llvm/dist/lib/CodeGen/LiveInterval.cpp
  vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp
  vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp
  vendor/llvm/dist/lib/CodeGen/MachineFunctionPrinterPass.cpp
  vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp
  vendor/llvm/dist/lib/CodeGen/MachineLICM.cpp
  vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp
  vendor/llvm/dist/lib/CodeGen/RegisterCoalescer.cpp
  vendor/llvm/dist/lib/CodeGen/RegisterPressure.cpp
  vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  vendor/llvm/dist/lib/CodeGen/ShrinkWrap.cpp
  vendor/llvm/dist/lib/CodeGen/StackColoring.cpp
  vendor/llvm/dist/lib/CodeGen/WinEHPrepare.cpp
  vendor/llvm/dist/lib/DebugInfo/Symbolize/DIPrinter.cpp
  vendor/llvm/dist/lib/ExecutionEngine/Orc/CMakeLists.txt
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
  vendor/llvm/dist/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  vendor/llvm/dist/lib/ExecutionEngine/SectionMemoryManager.cpp
  vendor/llvm/dist/lib/Fuzzer/FuzzerDriver.cpp
  vendor/llvm/dist/lib/Fuzzer/FuzzerFlags.def
  vendor/llvm/dist/lib/Fuzzer/FuzzerInterface.h
  vendor/llvm/dist/lib/Fuzzer/FuzzerInternal.h
  vendor/llvm/dist/lib/Fuzzer/FuzzerLoop.cpp
  vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.cpp
  vendor/llvm/dist/lib/Fuzzer/FuzzerTraceState.cpp
  vendor/llvm/dist/lib/Fuzzer/FuzzerUtil.cpp
  vendor/llvm/dist/lib/Fuzzer/test/FuzzerUnittest.cpp
  vendor/llvm/dist/lib/Fuzzer/test/MemcmpTest.cpp
  vendor/llvm/dist/lib/Fuzzer/test/fuzzer-dfsan.test
  vendor/llvm/dist/lib/Fuzzer/test/fuzzer-traces.test
  vendor/llvm/dist/lib/Fuzzer/test/fuzzer.test
  vendor/llvm/dist/lib/IR/AsmWriter.cpp
  vendor/llvm/dist/lib/IR/Core.cpp
  vendor/llvm/dist/lib/IR/Function.cpp
  vendor/llvm/dist/lib/IR/IRPrintingPasses.cpp
  vendor/llvm/dist/lib/IR/LLVMContext.cpp
  vendor/llvm/dist/lib/IR/LLVMContextImpl.h
  vendor/llvm/dist/lib/IR/LegacyPassManager.cpp
  vendor/llvm/dist/lib/IR/Metadata.cpp
  vendor/llvm/dist/lib/IR/Verifier.cpp
  vendor/llvm/dist/lib/LTO/LTOCodeGenerator.cpp
  vendor/llvm/dist/lib/Linker/IRMover.cpp
  vendor/llvm/dist/lib/Linker/LinkModules.cpp
  vendor/llvm/dist/lib/MC/MCExpr.cpp
  vendor/llvm/dist/lib/MC/MCObjectFileInfo.cpp
  vendor/llvm/dist/lib/MC/MCObjectStreamer.cpp
  vendor/llvm/dist/lib/MC/WinCOFFObjectWriter.cpp
  vendor/llvm/dist/lib/Object/COFFObjectFile.cpp
  vendor/llvm/dist/lib/Object/ELF.cpp
  vendor/llvm/dist/lib/ProfileData/CoverageMapping.cpp
  vendor/llvm/dist/lib/ProfileData/CoverageMappingReader.cpp
  vendor/llvm/dist/lib/ProfileData/InstrProf.cpp
  vendor/llvm/dist/lib/ProfileData/InstrProfWriter.cpp
  vendor/llvm/dist/lib/Support/Debug.cpp
  vendor/llvm/dist/lib/Support/IntEqClasses.cpp
  vendor/llvm/dist/lib/Support/Triple.cpp
  vendor/llvm/dist/lib/Support/Windows/Path.inc
  vendor/llvm/dist/lib/Support/Windows/Signals.inc
  vendor/llvm/dist/lib/Support/Windows/WindowsSupport.h
  vendor/llvm/dist/lib/Support/raw_ostream.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUCallingConv.td
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstrInfo.td
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/CMakeLists.txt
  vendor/llvm/dist/lib/Target/AMDGPU/EvergreenInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIDefines.h
  vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.h
  vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaits.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.h
  vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.h
  vendor/llvm/dist/lib/Target/AMDGPU/SITypeRewriter.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td
  vendor/llvm/dist/lib/Target/ARM/ARMFastISel.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td
  vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
  vendor/llvm/dist/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
  vendor/llvm/dist/lib/Target/ARM/Thumb1FrameLowering.h
  vendor/llvm/dist/lib/Target/AVR/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Hexagon/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Hexagon/HexagonAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonBitSimplify.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV4.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
  vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.h
  vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td
  vendor/llvm/dist/lib/Target/Mips/MipsSEInstrInfo.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetObjectFile.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstr64Bit.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.h
  vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td
  vendor/llvm/dist/lib/Target/WebAssembly/CMakeLists.txt
  vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h
  vendor/llvm/dist/lib/Target/WebAssembly/LLVMBuild.txt
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
  vendor/llvm/dist/lib/Target/WebAssembly/Makefile
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrControl.td
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyMCInstLower.h
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/known_gcc_test_failures.txt
  vendor/llvm/dist/lib/Target/X86/X86.h
  vendor/llvm/dist/lib/Target/X86/X86CallingConv.td
  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/X86InstrAVX512.td
  vendor/llvm/dist/lib/Target/X86/X86InstrExtension.td
  vendor/llvm/dist/lib/Target/X86/X86InstrFragmentsSIMD.td
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td
  vendor/llvm/dist/lib/Target/X86/X86InstrMPX.td
  vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td
  vendor/llvm/dist/lib/Target/X86/X86IntrinsicsInfo.h
  vendor/llvm/dist/lib/Target/X86/X86MachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/X86/X86OptimizeLEAs.cpp
  vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.h
  vendor/llvm/dist/lib/Transforms/IPO/ForceFunctionAttrs.cpp
  vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp
  vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp
  vendor/llvm/dist/lib/Transforms/IPO/IPO.cpp
  vendor/llvm/dist/lib/Transforms/IPO/LoopExtractor.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSelect.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/InstrProfiling.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopDeletion.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollPass.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/PlaceSafepoints.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SCCP.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/TailRecursionElimination.cpp
  vendor/llvm/dist/lib/Transforms/Utils/BasicBlockUtils.cpp
  vendor/llvm/dist/lib/Transforms/Utils/CloneFunction.cpp
  vendor/llvm/dist/lib/Transforms/Utils/Local.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopUtils.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Utils/ValueMapper.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp
  vendor/llvm/dist/test/Bitcode/compatibility.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/flat-scratch-reg.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fmin_legacy.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fsub.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/hsa-globals.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/hsa.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/inline-asm.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.round.f64.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/sint_to_fp.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/udiv.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/uint_to_fp.ll
  vendor/llvm/dist/test/CodeGen/ARM/fp16-args.ll
  vendor/llvm/dist/test/CodeGen/ARM/zero-cycle-zero.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/postinc-offset.ll
  vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/call.ll
  vendor/llvm/dist/test/CodeGen/Mips/madd-msub.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppc64le-localentry.ll
  vendor/llvm/dist/test/CodeGen/SPARC/2011-01-19-DelaySlot.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/call.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/cfg-stackify.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f32.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_f64.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i32.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/comparisons_i64.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/conv.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/copysign-casts.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/cpus.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/dead-vreg.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/f32.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/f64.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/fast-isel.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/frem.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/func.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/global.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/globl.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/i32.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/i64.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/ident.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/immediates.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/inline-asm.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/legalize.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/load-ext.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/load-store-i1.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/load.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/loop-idiom.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr32.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/memory-addr64.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/offset-folding.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/offset.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/phi.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/reg-stackify.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/return-int32.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/return-void.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/returned.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/select.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/signext-zeroext.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/store-results.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/store-trunc.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/store.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/switch.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/unreachable.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/unused-argument.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/userstack.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/varargs.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/vtable.ll
  vendor/llvm/dist/test/CodeGen/WinEH/wineh-cloning.ll
  vendor/llvm/dist/test/CodeGen/WinEH/wineh-no-demotion.ll
  vendor/llvm/dist/test/CodeGen/WinEH/wineh-statenumbering.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-11-03-F80VAARG.ll
  vendor/llvm/dist/test/CodeGen/X86/2012-01-12-extract-sv.ll
  vendor/llvm/dist/test/CodeGen/X86/avx-vbroadcast.ll
  vendor/llvm/dist/test/CodeGen/X86/avx2-vbroadcast.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512bw-intrinsics.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512bwvl-intrinsics.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512vl-intrinsics.ll
  vendor/llvm/dist/test/CodeGen/X86/cxx_tlscc64.ll
  vendor/llvm/dist/test/CodeGen/X86/dagcombine-cse.ll
  vendor/llvm/dist/test/CodeGen/X86/f16c-intrinsics.ll
  vendor/llvm/dist/test/CodeGen/X86/insertps-combine.ll
  vendor/llvm/dist/test/CodeGen/X86/lea-opt.ll
  vendor/llvm/dist/test/CodeGen/X86/pr13577.ll
  vendor/llvm/dist/test/CodeGen/X86/scalar-int-to-fp.ll
  vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-sse42.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_uint_to_fp-fastmath.ll
  vendor/llvm/dist/test/CodeGen/X86/x86-shrink-wrapping.ll
  vendor/llvm/dist/test/DebugInfo/COFF/asm.ll
  vendor/llvm/dist/test/DebugInfo/COFF/multifile.ll
  vendor/llvm/dist/test/DebugInfo/COFF/multifunction.ll
  vendor/llvm/dist/test/DebugInfo/COFF/simple.ll
  vendor/llvm/dist/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll
  vendor/llvm/dist/test/DebugInfo/X86/debugger-tune.ll
  vendor/llvm/dist/test/DebugInfo/X86/tls.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/simpletest-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/stubs-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-common-symbols-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-data-align-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-fp-no-external-funcs-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-remote.ll
  vendor/llvm/dist/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll
  vendor/llvm/dist/test/Feature/exception.ll
  vendor/llvm/dist/test/MC/COFF/timestamp.s
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips2/valid-mips2.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips3/valid-mips3.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips4/valid-mips4.txt
  vendor/llvm/dist/test/MC/Disassembler/X86/avx-512.txt
  vendor/llvm/dist/test/MC/Mips/mips1/valid.s
  vendor/llvm/dist/test/MC/Mips/mips2/valid.s
  vendor/llvm/dist/test/MC/Mips/mips3/valid.s
  vendor/llvm/dist/test/MC/Mips/mips32/valid.s
  vendor/llvm/dist/test/MC/Mips/mips32r2/valid.s
  vendor/llvm/dist/test/MC/Mips/mips32r3/valid.s
  vendor/llvm/dist/test/MC/Mips/mips32r5/valid.s
  vendor/llvm/dist/test/MC/Mips/mips32r6/valid.s
  vendor/llvm/dist/test/MC/Mips/mips4/valid.s
  vendor/llvm/dist/test/MC/Mips/mips5/valid.s
  vendor/llvm/dist/test/MC/Mips/mips64/valid.s
  vendor/llvm/dist/test/MC/Mips/mips64r2/valid.s
  vendor/llvm/dist/test/MC/Mips/mips64r3/valid.s
  vendor/llvm/dist/test/MC/Mips/mips64r5/valid.s
  vendor/llvm/dist/test/MC/Mips/mips64r6/valid.s
  vendor/llvm/dist/test/MC/X86/avx512-encodings.s
  vendor/llvm/dist/test/MC/X86/intel-syntax-avx512.s
  vendor/llvm/dist/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s
  vendor/llvm/dist/test/MC/X86/x86-64-avx512dq.s
  vendor/llvm/dist/test/Other/2010-05-06-Printer.ll
  vendor/llvm/dist/test/TableGen/TwoLevelName.td
  vendor/llvm/dist/test/Transforms/FunctionAttrs/norecurse.ll
  vendor/llvm/dist/test/Transforms/FunctionImport/Inputs/funcimport.ll
  vendor/llvm/dist/test/Transforms/FunctionImport/funcimport.ll
  vendor/llvm/dist/test/Transforms/FunctionImport/funcimport_debug.ll
  vendor/llvm/dist/test/Transforms/Inline/attributes.ll
  vendor/llvm/dist/test/Transforms/InstCombine/fast-math.ll
  vendor/llvm/dist/test/Transforms/InstCombine/inline-intrinsic-assert.ll
  vendor/llvm/dist/test/Transforms/InstCombine/insert-extract-shuffle.ll
  vendor/llvm/dist/test/Transforms/InstCombine/log-pow.ll
  vendor/llvm/dist/test/Transforms/InstCombine/no_cgscc_assert.ll
  vendor/llvm/dist/test/Transforms/InstCombine/pow-exp.ll
  vendor/llvm/dist/test/Transforms/InstCombine/pow-sqrt.ll
  vendor/llvm/dist/test/Transforms/InstCombine/tan.ll
  vendor/llvm/dist/test/Transforms/InstSimplify/floating-point-compare.ll
  vendor/llvm/dist/test/Transforms/JumpThreading/select.ll
  vendor/llvm/dist/test/Transforms/LoopUnroll/partial-unroll-optsize.ll
  vendor/llvm/dist/test/Transforms/LoopUnroll/unloop.ll
  vendor/llvm/dist/test/Transforms/MemCpyOpt/fca2memcpy.ll
  vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/constants.ll
  vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector.ll
  vendor/llvm/dist/test/Transforms/RewriteStatepointsForGC/live-vector.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/invoke_unwind.ll
  vendor/llvm/dist/test/Verifier/gc_relocate_return.ll
  vendor/llvm/dist/test/Verifier/invalid-eh.ll
  vendor/llvm/dist/test/lit.cfg
  vendor/llvm/dist/test/lit.site.cfg.in
  vendor/llvm/dist/test/tools/llvm-objdump/malformed-archives.test
  vendor/llvm/dist/test/tools/llvm-profdata/value-prof.proftext
  vendor/llvm/dist/test/tools/llvm-readobj/codeview-linetables.test
  vendor/llvm/dist/test/tools/llvm-symbolizer/Inputs/addr.inp
  vendor/llvm/dist/test/tools/llvm-symbolizer/sym.test
  vendor/llvm/dist/tools/lli/CMakeLists.txt
  vendor/llvm/dist/tools/lli/ChildTarget/CMakeLists.txt
  vendor/llvm/dist/tools/lli/ChildTarget/ChildTarget.cpp
  vendor/llvm/dist/tools/lli/ChildTarget/Makefile
  vendor/llvm/dist/tools/lli/OrcLazyJIT.cpp
  vendor/llvm/dist/tools/lli/OrcLazyJIT.h
  vendor/llvm/dist/tools/lli/lli.cpp
  vendor/llvm/dist/tools/llvm-lto/llvm-lto.cpp
  vendor/llvm/dist/tools/llvm-objdump/COFFDump.cpp
  vendor/llvm/dist/tools/llvm-objdump/MachODump.cpp
  vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.cpp
  vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.h
  vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp
  vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp
  vendor/llvm/dist/tools/llvm-symbolizer/llvm-symbolizer.cpp
  vendor/llvm/dist/unittests/ADT/CMakeLists.txt
  vendor/llvm/dist/unittests/ADT/PointerIntPairTest.cpp
  vendor/llvm/dist/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
  vendor/llvm/dist/unittests/ExecutionEngine/Orc/CMakeLists.txt
  vendor/llvm/dist/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp
  vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.cpp
  vendor/llvm/dist/unittests/ExecutionEngine/Orc/OrcTestCommon.h
  vendor/llvm/dist/unittests/IR/CMakeLists.txt
  vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp
  vendor/llvm/dist/unittests/ProfileData/InstrProfTest.cpp
  vendor/llvm/dist/unittests/Support/MathExtrasTest.cpp
  vendor/llvm/dist/utils/KillTheDoctor/KillTheDoctor.cpp
  vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp
  vendor/llvm/dist/utils/TableGen/AsmWriterInst.cpp
  vendor/llvm/dist/utils/lit/lit/util.py

Modified: vendor/llvm/dist/cmake/modules/AddLLVM.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/AddLLVM.cmake	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/cmake/modules/AddLLVM.cmake	Wed Jan 13 19:58:01 2016	(r293838)
@@ -308,6 +308,8 @@ endfunction(set_windows_version_resource
 #   SHARED;STATIC
 #     STATIC by default w/o BUILD_SHARED_LIBS.
 #     SHARED by default w/  BUILD_SHARED_LIBS.
+#   OBJECT
+#     Also create an OBJECT library target. Default if STATIC && SHARED.
 #   MODULE
 #     Target ${name} might not be created on unsupported platforms.
 #     Check with "if(TARGET ${name})".
@@ -329,7 +331,7 @@ endfunction(set_windows_version_resource
 #   )
 function(llvm_add_library name)
   cmake_parse_arguments(ARG
-    "MODULE;SHARED;STATIC;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME"
+    "MODULE;SHARED;STATIC;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME"
     "OUTPUT_NAME"
     "ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS"
     ${ARGN})
@@ -362,7 +364,7 @@ function(llvm_add_library name)
   endif()
 
   # Generate objlib
-  if(ARG_SHARED AND ARG_STATIC)
+  if((ARG_SHARED AND ARG_STATIC) OR ARG_OBJECT)
     # Generate an obj library for both targets.
     set(obj_name "obj.${name}")
     add_library(${obj_name} OBJECT EXCLUDE_FROM_ALL

Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Wed Jan 13 19:58:01 2016	(r293838)
@@ -363,6 +363,36 @@ if( MSVC )
 
   append("/Zc:inline" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
 
+  if (NOT LLVM_ENABLE_TIMESTAMPS AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    # clang-cl and cl by default produce non-deterministic binaries because
+    # link.exe /incremental requires a timestamp in the .obj file.  clang-cl
+    # has the flag /Brepro to force deterministic binaries, so pass that when
+    # LLVM_ENABLE_TIMESTAMPS is turned off.
+    # This checks CMAKE_CXX_COMPILER_ID in addition to check_cxx_compiler_flag()
+    # because cl.exe does not emit an error on flags it doesn't understand,
+    # letting check_cxx_compiler_flag() claim it understands all flags.
+    check_cxx_compiler_flag("/Brepro" SUPPORTS_BREPRO)
+    append_if(SUPPORTS_BREPRO "/Brepro" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+
+    if (SUPPORTS_BREPRO)
+      # Check if /INCREMENTAL is passed to the linker and complain that it
+      # won't work with /Brepro.
+      string(TOUPPER "${CMAKE_EXE_LINKER_FLAGS}" upper_exe_flags)
+      string(TOUPPER "${CMAKE_MODULE_LINKER_FLAGS}" upper_module_flags)
+      string(TOUPPER "${CMAKE_SHARED_LINKER_FLAGS}" upper_shared_flags)
+
+      string(FIND "${upper_exe_flags}" "/INCREMENTAL" exe_index)
+      string(FIND "${upper_module_flags}" "/INCREMENTAL" module_index)
+      string(FIND "${upper_shared_flags}" "/INCREMENTAL" shared_index)
+      
+      if (${exe_index} GREATER -1 OR
+          ${module_index} GREATER -1 OR
+          ${shared_index} GREATER -1)
+        message(FATAL_ERROR "LLVM_ENABLE_TIMESTAMPS not compatible with /INCREMENTAL linking")
+      endif()
+    endif()
+  endif()
+
   # Disable sized deallocation if the flag is supported. MSVC fails to compile
   # the operator new overload in User otherwise.
   check_c_compiler_flag("/WX /Zc:sizedDealloc-" SUPPORTS_SIZED_DEALLOC)

Modified: vendor/llvm/dist/docs/AliasAnalysis.rst
==============================================================================
--- vendor/llvm/dist/docs/AliasAnalysis.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/AliasAnalysis.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -190,7 +190,7 @@ this property are side-effect free, only
 the state of memory when they are called.  This property allows calls to these
 functions to be eliminated and moved around, as long as there is no store
 instruction that changes the contents of memory.  Note that all functions that
-satisfy the ``doesNotAccessMemory`` method also satisfies ``onlyReadsMemory``.
+satisfy the ``doesNotAccessMemory`` method also satisfy ``onlyReadsMemory``.
 
 Writing a new ``AliasAnalysis`` Implementation
 ==============================================
@@ -634,7 +634,7 @@ transformations:
 * It uses mod/ref information to hoist function calls out of loops that do not
   write to memory and are loop-invariant.
 
-* If uses alias information to promote memory objects that are loaded and stored
+* It uses alias information to promote memory objects that are loaded and stored
   to in loops to live in a register instead.  It can do this if there are no may
   aliases to the loaded/stored memory location.
 

Modified: vendor/llvm/dist/docs/CommandGuide/llvm-symbolizer.rst
==============================================================================
--- vendor/llvm/dist/docs/CommandGuide/llvm-symbolizer.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/CommandGuide/llvm-symbolizer.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -11,9 +11,9 @@ DESCRIPTION
 
 :program:`llvm-symbolizer` reads object file names and addresses from standard
 input and prints corresponding source code locations to standard output.
-If object file is specified in command line, :program:`llvm-symbolizer` reads
-only addresses from standard input. This
-program uses debug info sections and symbol table in the object files.
+If object file is specified in command line, :program:`llvm-symbolizer` 
+processes only addresses from standard input, the rest is output verbatim.
+This program uses debug info sections and symbol table in the object files.
 
 EXAMPLE
 --------

Modified: vendor/llvm/dist/docs/ExceptionHandling.rst
==============================================================================
--- vendor/llvm/dist/docs/ExceptionHandling.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/ExceptionHandling.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -775,3 +775,67 @@ C++ code:
 
 The "inner" ``catchswitch`` consumes ``%1`` which is produced by the outer
 catchswitch.
+
+.. _wineh-constraints:
+
+Funclet transitions
+-----------------------
+
+The EH tables for personalities that use funclets make implicit use of the
+funclet nesting relationship to encode unwind destinations, and so are
+constrained in the set of funclet transitions they can represent.  The related
+LLVM IR instructions accordingly have constraints that ensure encodability of
+the EH edges in the flow graph.
+
+A ``catchswitch``, ``catchpad``, or ``cleanuppad`` is said to be "entered"
+when it executes.  It may subsequently be "exited" by any of the following
+means:
+
+* A ``catchswitch`` is immediately exited when none of its constituent
+  ``catchpad``\ s are appropriate for the in-flight exception and it unwinds
+  to its unwind destination or the caller.
+* A ``catchpad`` and its parent ``catchswitch`` are both exited when a
+  ``catchret`` from the ``catchpad`` is executed.
+* A ``cleanuppad`` is exited when a ``cleanupret`` from it is executed.
+* Any of these pads is exited when control unwinds to the function's caller,
+  either by a ``call`` which unwinds all the way to the function's caller,
+  a nested ``catchswitch`` marked "``unwinds to caller``", or a nested
+  ``cleanuppad``\ 's ``cleanupret`` marked "``unwinds to caller"``.
+* Any of these pads is exited when an unwind edge (from an ``invoke``,
+  nested ``catchswitch``, or nested ``cleanuppad``\ 's ``cleanupret``)
+  unwinds to a destination pad that is not a descendant of the given pad.
+
+Note that the ``ret`` instruction is *not* a valid way to exit a funclet pad;
+it is undefined behavior to execute a ``ret`` when a pad has been entered but
+not exited.
+
+A single unwind edge may exit any number of pads (with the restrictions that
+the edge from a ``catchswitch`` must exit at least itself, and the edge from
+a ``cleanupret`` must exit at least its ``cleanuppad``), and then must enter
+exactly one pad, which must be distinct from all the exited pads.  The parent
+of the pad that an unwind edge enters must be the most-recently-entered
+not-yet-exited pad (after exiting from any pads that the unwind edge exits),
+or "none" if there is no such pad.  This ensures that the stack of executing
+funclets at run-time always corresponds to some path in the funclet pad tree
+that the parent tokens encode.
+
+All unwind edges which exit any given funclet pad (including ``cleanupret``
+edges exiting their ``cleanuppad`` and ``catchswitch`` edges exiting their
+``catchswitch``) must share the same unwind destination.  Similarly, any
+funclet pad which may be exited by unwind to caller must not be exited by
+any exception edges which unwind anywhere other than the caller.  This
+ensures that each funclet as a whole has only one unwind destination, which
+EH tables for funclet personalities may require.  Note that any unwind edge
+which exits a ``catchpad`` also exits its parent ``catchswitch``, so this
+implies that for any given ``catchswitch``, its unwind destination must also
+be the unwind destination of any unwind edge that exits any of its constituent
+``catchpad``\s.  Because ``catchswitch`` has no ``nounwind`` variant, and
+because IR producers are not *required* to annotate calls which will not
+unwind as ``nounwind``, it is legal to nest a ``call`` or an "``unwind to
+caller``\ " ``catchswitch`` within a funclet pad that has an unwind
+destination other than caller; it is undefined behavior for such a ``call``
+or ``catchswitch`` to unwind.
+
+Finally, the funclet pads' unwind destinations cannot form a cycle.  This
+ensures that EH lowering can construct "try regions" with a tree-like
+structure, which funclet-based personalities may require.

Modified: vendor/llvm/dist/docs/GettingStartedVS.rst
==============================================================================
--- vendor/llvm/dist/docs/GettingStartedVS.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/GettingStartedVS.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -12,26 +12,20 @@ Welcome to LLVM on Windows! This documen
 Visual Studio, not mingw or cygwin. In order to get started, you first need to
 know some basic information.
 
-There are many different projects that compose LLVM. The first is the LLVM
-suite. This contains all of the tools, libraries, and header files needed to
-use LLVM. It contains an assembler, disassembler,
-bitcode analyzer and bitcode optimizer. It also contains a test suite that can
-be used to test the LLVM tools.
-
-Another useful project on Windows is `Clang <http://clang.llvm.org/>`_.
-Clang is a C family ([Objective]C/C++) compiler. Clang mostly works on
-Windows, but does not currently understand all of the Microsoft extensions
-to C and C++. Because of this, clang cannot parse the C++ standard library
-included with Visual Studio, nor parts of the Windows Platform SDK. However,
-most standard C programs do compile. Clang can be used to emit bitcode,
-directly emit object files or even linked executables using Visual Studio's
-``link.exe``.
+There are many different projects that compose LLVM. The first piece is the
+LLVM suite. This contains all of the tools, libraries, and header files needed
+to use LLVM. It contains an assembler, disassembler, bitcode analyzer and
+bitcode optimizer. It also contains basic regression tests that can be used to
+test the LLVM tools and the Clang front end.
+
+The second piece is the `Clang <http://clang.llvm.org/>`_ front end.  This
+component compiles C, C++, Objective C, and Objective C++ code into LLVM
+bitcode. Clang typically uses LLVM libraries to optimize the bitcode and emit
+machine code. LLVM fully supports the COFF object file format, which is
+compatible with all other existing Windows toolchains.
 
-The large LLVM test suite cannot be run on the Visual Studio port at this
-time.
-
-Most of the tools build and work.  ``bugpoint`` does build, but does
-not work.
+The last major part of LLVM, the execution Test Suite, does not run on Windows,
+and this document does not discuss it.
 
 Additional information about the LLVM directory structure and tool chain
 can be found on the main :doc:`GettingStarted` page.

Modified: vendor/llvm/dist/docs/LangRef.rst
==============================================================================
--- vendor/llvm/dist/docs/LangRef.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/LangRef.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -1579,6 +1579,8 @@ caller's deoptimization state to the cal
 semantically equivalent to composing the caller's deoptimization
 continuation after the callee's deoptimization continuation.
 
+.. _ob_funclet:
+
 Funclet Operand Bundles
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -1588,6 +1590,18 @@ is within a particular funclet.  There c
 ``"funclet"`` operand bundle attached to a call site and it must have
 exactly one bundle operand.
 
+If any funclet EH pads have been "entered" but not "exited" (per the
+`description in the EH doc\ <ExceptionHandling.html#wineh-constraints>`_),
+it is undefined behavior to execute a ``call`` or ``invoke`` which:
+
+* does not have a ``"funclet"`` bundle and is not a ``call`` to a nounwind
+  intrinsic, or
+* has a ``"funclet"`` bundle whose operand is not the most-recently-entered
+  not-yet-exited funclet EH pad.
+
+Similarly, if no funclet EH pads have been entered-but-not-yet-exited,
+executing a ``call`` or ``invoke`` with a ``"funclet"`` bundle is undefined behavior.
+
 .. _moduleasm:
 
 Module-Level Inline Assembly
@@ -5404,10 +5418,12 @@ The ``parent`` argument is the token of 
 ``catchswitch`` instruction. If the ``catchswitch`` is not inside a funclet,
 this operand may be the token ``none``.
 
-The ``default`` argument is the label of another basic block beginning with a
-"pad" instruction, one of ``cleanuppad`` or ``catchswitch``.
+The ``default`` argument is the label of another basic block beginning with
+either a ``cleanuppad`` or ``catchswitch`` instruction.  This unwind destination
+must be a legal target with respect to the ``parent`` links, as described in
+the `exception handling documentation\ <ExceptionHandling.html#wineh-constraints>`_.
 
-The ``handlers`` are a list of successor blocks that each begin with a
+The ``handlers`` are a nonempty list of successor blocks that each begin with a
 :ref:`catchpad <i_catchpad>` instruction.
 
 Semantics:
@@ -5431,82 +5447,6 @@ Example:
     dispatch2:
       %cs2 = catchswitch within %parenthandler [label %handler0] unwind label %cleanup
 
-.. _i_catchpad:
-
-'``catchpad``' Instruction
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Syntax:
-"""""""
-
-::
-
-      <resultval> = catchpad within <catchswitch> [<args>*]
-
-Overview:
-"""""""""
-
-The '``catchpad``' instruction is used by `LLVM's exception handling
-system <ExceptionHandling.html#overview>`_ to specify that a basic block
-begins a catch handler --- one where a personality routine attempts to transfer
-control to catch an exception.
-
-Arguments:
-""""""""""
-
-The ``catchswitch`` operand must always be a token produced by a
-:ref:`catchswitch <i_catchswitch>` instruction in a predecessor block. This
-ensures that each ``catchpad`` has exactly one predecessor block, and it always
-terminates in a ``catchswitch``.
-
-The ``args`` correspond to whatever information the personality routine
-requires to know if this is an appropriate handler for the exception. Control
-will transfer to the ``catchpad`` if this is the first appropriate handler for
-the exception.
-
-The ``resultval`` has the type :ref:`token <t_token>` and is used to match the
-``catchpad`` to corresponding :ref:`catchrets <i_catchret>` and other nested EH
-pads.
-
-Semantics:
-""""""""""
-
-When the call stack is being unwound due to an exception being thrown, the
-exception is compared against the ``args``. If it doesn't match, control will
-not reach the ``catchpad`` instruction.  The representation of ``args`` is
-entirely target and personality function-specific.
-
-Like the :ref:`landingpad <i_landingpad>` instruction, the ``catchpad``
-instruction must be the first non-phi of its parent basic block.
-
-The meaning of the tokens produced and consumed by ``catchpad`` and other "pad"
-instructions is described in the
-`Windows exception handling documentation <ExceptionHandling.html#wineh>`.
-
-Executing a ``catchpad`` instruction constitutes "entering" that pad.
-The pad may then be "exited" in one of three ways:
-
-1)  explicitly via a ``catchret`` that consumes it.  Executing such a ``catchret``
-    is undefined behavior if any descendant pads have been entered but not yet
-    exited.
-2)  implicitly via a call (which unwinds all the way to the current function's caller),
-    or via a ``catchswitch`` or a ``cleanupret`` that unwinds to caller.
-3)  implicitly via an unwind edge whose destination EH pad isn't a descendant of
-    the ``catchpad``.  When the ``catchpad`` is exited in this manner, it is
-    undefined behavior if the destination EH pad has a parent which is not an
-    ancestor of the ``catchpad`` being exited.
-
-Example:
-""""""""
-
-.. code-block:: llvm
-
-    dispatch:
-      %cs = catchswitch within none [label %handler0] unwind to caller
-      ;; A catch block which can catch an integer.
-    handler0:
-      %tok = catchpad within %cs [i8** @_ZTIi]
-
 .. _i_catchret:
 
 '``catchret``' Instruction
@@ -5543,11 +5483,10 @@ unwinding was interrupted with a :ref:`c
 code to, for example, destroy the active exception.  Control then transfers to
 ``normal``.
 
-The ``token`` argument must be a token produced by a dominating ``catchpad``
-instruction. The ``catchret`` destroys the physical frame established by
-``catchpad``, so executing multiple returns on the same token without
-re-executing the ``catchpad`` will result in undefined behavior.
-See :ref:`catchpad <i_catchpad>` for more details.
+The ``token`` argument must be a token produced by a ``catchpad`` instruction.
+If the specified ``catchpad`` is not the most-recently-entered not-yet-exited
+funclet pad (as described in the `EH documentation\ <ExceptionHandling.html#wineh-constraints>`_),
+the ``catchret``'s behavior is undefined.
 
 Example:
 """"""""
@@ -5581,7 +5520,15 @@ Arguments:
 
 The '``cleanupret``' instruction requires one argument, which indicates
 which ``cleanuppad`` it exits, and must be a :ref:`cleanuppad <i_cleanuppad>`.
-It also has an optional successor, ``continue``.
+If the specified ``cleanuppad`` is not the most-recently-entered not-yet-exited
+funclet pad (as described in the `EH documentation\ <ExceptionHandling.html#wineh-constraints>`_),
+the ``cleanupret``'s behavior is undefined.
+
+The '``cleanupret``' instruction also has an optional successor, ``continue``,
+which must be the label of another basic block beginning with either a
+``cleanuppad`` or ``catchswitch`` instruction.  This unwind destination must
+be a legal target with respect to the ``parent`` links, as described in the
+`exception handling documentation\ <ExceptionHandling.html#wineh-constraints>`_.
 
 Semantics:
 """"""""""
@@ -5591,13 +5538,6 @@ The '``cleanupret``' instruction indicat
 :ref:`cleanuppad <i_cleanuppad>` it transferred control to has ended.
 It transfers control to ``continue`` or unwinds out of the function.
 
-The unwind destination ``continue``, if present, must be an EH pad
-whose parent is either ``none`` or an ancestor of the ``cleanuppad``
-being returned from.  This constitutes an exceptional exit from all
-ancestors of the completed ``cleanuppad``, up to but not including
-the parent of ``continue``.
-See :ref:`cleanuppad <i_cleanuppad>` for more details.
-
 Example:
 """"""""
 
@@ -6996,7 +6936,7 @@ name ``<index>`` corresponding to a meta
 value 1. The existence of the ``!nontemporal`` metadata on the instruction
 tells the optimizer and code generator that this load is not expected to
 be reused in the cache. The code generator may select special
-instructions to save cache bandwidth, such as the MOVNT instruction on
+instructions to save cache bandwidth, such as the ``MOVNT`` instruction on
 x86.
 
 The optional ``!invariant.group`` metadata must reference a 
@@ -8590,6 +8530,74 @@ Example:
                catch i8** @_ZTIi
                filter [1 x i8**] [@_ZTId]
 
+.. _i_catchpad:
+
+'``catchpad``' Instruction
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Syntax:
+"""""""
+
+::
+
+      <resultval> = catchpad within <catchswitch> [<args>*]
+
+Overview:
+"""""""""
+
+The '``catchpad``' instruction is used by `LLVM's exception handling
+system <ExceptionHandling.html#overview>`_ to specify that a basic block
+begins a catch handler --- one where a personality routine attempts to transfer
+control to catch an exception.
+
+Arguments:
+""""""""""
+
+The ``catchswitch`` operand must always be a token produced by a
+:ref:`catchswitch <i_catchswitch>` instruction in a predecessor block. This
+ensures that each ``catchpad`` has exactly one predecessor block, and it always
+terminates in a ``catchswitch``.
+
+The ``args`` correspond to whatever information the personality routine
+requires to know if this is an appropriate handler for the exception. Control
+will transfer to the ``catchpad`` if this is the first appropriate handler for
+the exception.
+
+The ``resultval`` has the type :ref:`token <t_token>` and is used to match the
+``catchpad`` to corresponding :ref:`catchrets <i_catchret>` and other nested EH
+pads.
+
+Semantics:
+""""""""""
+
+When the call stack is being unwound due to an exception being thrown, the
+exception is compared against the ``args``. If it doesn't match, control will
+not reach the ``catchpad`` instruction.  The representation of ``args`` is
+entirely target and personality function-specific.
+
+Like the :ref:`landingpad <i_landingpad>` instruction, the ``catchpad``
+instruction must be the first non-phi of its parent basic block.
+
+The meaning of the tokens produced and consumed by ``catchpad`` and other "pad"
+instructions is described in the
+`Windows exception handling documentation\ <ExceptionHandling.html#wineh>`_.
+
+When a ``catchpad`` has been "entered" but not yet "exited" (as
+described in the `EH documentation\ <ExceptionHandling.html#wineh-constraints>`_),
+it is undefined behavior to execute a :ref:`call <i_call>` or :ref:`invoke <i_invoke>`
+that does not carry an appropriate :ref:`"funclet" bundle <ob_funclet>`.
+
+Example:
+""""""""
+
+.. code-block:: llvm
+
+    dispatch:
+      %cs = catchswitch within none [label %handler0] unwind to caller
+      ;; A catch block which can catch an integer.
+    handler0:
+      %tok = catchpad within %cs [i8** @_ZTIi]
+
 .. _i_cleanuppad:
 
 '``cleanuppad``' Instruction
@@ -8644,22 +8652,10 @@ The ``cleanuppad`` instruction has sever
 -  A basic block that is not a cleanup block may not include a
    '``cleanuppad``' instruction.
 
-Executing a ``cleanuppad`` instruction constitutes "entering" that pad.
-The pad may then be "exited" in one of three ways:
-
-1)  explicitly via a ``cleanupret`` that consumes it.  Executing such a ``cleanupret``
-    is undefined behavior if any descendant pads have been entered but not yet
-    exited.
-2)  implicitly via a call (which unwinds all the way to the current function's caller),
-    or via a ``catchswitch`` or a ``cleanupret`` that unwinds to caller.
-3)  implicitly via an unwind edge whose destination EH pad isn't a descendant of
-    the ``cleanuppad``.  When the ``cleanuppad`` is exited in this manner, it is
-    undefined behavior if the destination EH pad has a parent which is not an
-    ancestor of the ``cleanuppad`` being exited.
-
-It is undefined behavior for the ``cleanuppad`` to exit via an unwind edge which
-does not transitively unwind to the same destination as a constituent
-``cleanupret``.
+When a ``cleanuppad`` has been "entered" but not yet "exited" (as
+described in the `EH documentation\ <ExceptionHandling.html#wineh-constraints>`_),
+it is undefined behavior to execute a :ref:`call <i_call>` or :ref:`invoke <i_invoke>`
+that does not carry an appropriate :ref:`"funclet" bundle <ob_funclet>`.
 
 Example:
 """"""""

Modified: vendor/llvm/dist/docs/Phabricator.rst
==============================================================================
--- vendor/llvm/dist/docs/Phabricator.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/Phabricator.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -136,7 +136,7 @@ reviewers, the ``Differential Revision``
   arc commit --revision D<Revision>
 
 
-When committing an LLVM change that has been reviewed using
+When committing a change that has been reviewed using
 Phabricator, the convention is for the commit message to end with the
 line:
 
@@ -153,6 +153,12 @@ This allows people reading the version h
 context.  This also allows Phabricator to detect the commit, close the
 review, and add a link from the review to the commit.
 
+If you use ``git`` or ``svn`` to commit the change and forget to add the line
+to your commit message, you should close the review manually. In the web UI,
+under "Leap Into Action" put the SVN revision number in the Comment, set the
+Action to "Close Revision" and click Submit. Note the review must have been
+Accepted first.
+
 Abandoning a change
 -------------------
 

Modified: vendor/llvm/dist/docs/ProgrammersManual.rst
==============================================================================
--- vendor/llvm/dist/docs/ProgrammersManual.rst	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/docs/ProgrammersManual.rst	Wed Jan 13 19:58:01 2016	(r293838)
@@ -408,6 +408,9 @@ Then you can run your pass like this:
   'foo' debug type
   $ opt < a.bc > /dev/null -mypass -debug-only=bar
   'bar' debug type
+  $ opt < a.bc > /dev/null -mypass -debug-only=foo,bar
+  'foo' debug type
+  'bar' debug type
 
 Of course, in practice, you should only set ``DEBUG_TYPE`` at the top of a file,
 to specify the debug type for the entire module. Be careful that you only do
@@ -417,7 +420,8 @@ system in place to ensure that names do 
 use the same string, they will all be turned on when the name is specified.
 This allows, for example, all debug information for instruction scheduling to be
 enabled with ``-debug-only=InstrSched``, even if the source lives in multiple
-files.
+files. The name must not include a comma (,) as that is used to seperate the
+arguments of the ``-debug-only`` option.
 
 For performance reasons, -debug-only is not available in optimized build
 (``--enable-optimized``) of LLVM.

Modified: vendor/llvm/dist/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp
==============================================================================
--- vendor/llvm/dist/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp	Wed Jan 13 19:58:01 2016	(r293838)
@@ -4,7 +4,7 @@
 #include "llvm/ExecutionEngine/Orc/LambdaResolver.h"
 #include "llvm/ExecutionEngine/Orc/LazyEmittingLayer.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
-#include "llvm/ExecutionEngine/Orc/OrcTargetSupport.h"
+#include "llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h"
 #include "llvm/IR/DataLayout.h"
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/IRBuilder.h"

Modified: vendor/llvm/dist/include/llvm/ADT/IntEqClasses.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/IntEqClasses.h	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/include/llvm/ADT/IntEqClasses.h	Wed Jan 13 19:58:01 2016	(r293838)
@@ -53,10 +53,10 @@ public:
     NumClasses = 0;
   }
 
-  /// join - Join the equivalence classes of a and b. After joining classes,
-  /// findLeader(a) == findLeader(b).
-  /// This requires an uncompressed map.
-  void join(unsigned a, unsigned b);
+  /// Join the equivalence classes of a and b. After joining classes,
+  /// findLeader(a) == findLeader(b). This requires an uncompressed map.
+  /// Returns the new leader.
+  unsigned join(unsigned a, unsigned b);
 
   /// findLeader - Compute the leader of a's equivalence class. This is the
   /// smallest member of the class.

Added: vendor/llvm/dist/include/llvm/ADT/PointerEmbeddedInt.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/llvm/dist/include/llvm/ADT/PointerEmbeddedInt.h	Wed Jan 13 19:58:01 2016	(r293838)
@@ -0,0 +1,103 @@
+//===- llvm/ADT/PointerEmbeddedInt.h ----------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ADT_POINTEREMBEDDEDINT_H
+#define LLVM_ADT_POINTEREMBEDDEDINT_H
+
+#include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/PointerLikeTypeTraits.h"
+#include <climits>
+
+namespace llvm {
+
+/// Utility to embed an integer into a pointer-like type. This is specifically
+/// intended to allow embedding integers where fewer bits are required than
+/// exist in a pointer, and the integer can participate in abstractions along
+/// side other pointer-like types. For example it can be placed into a \c
+/// PointerSumType or \c PointerUnion.
+///
+/// Note that much like pointers, an integer value of zero has special utility
+/// due to boolean conversions. For example, a non-null value can be tested for
+/// in the above abstractions without testing the particular active member.
+/// Also, the default constructed value zero initializes the integer.
+template <typename IntT, int Bits = sizeof(IntT) * CHAR_BIT>
+class PointerEmbeddedInt {
+  uintptr_t Value;
+
+  static_assert(Bits < sizeof(uintptr_t) * CHAR_BIT,
+                "Cannot embed more bits than we have in a pointer!");
+
+  enum : uintptr_t {
+    // We shift as many zeros into the value as we can while preserving the
+    // number of bits desired for the integer.
+    Shift = sizeof(uintptr_t) * CHAR_BIT - Bits,
+
+    // We also want to be able to mask out the preserved bits for asserts.
+    Mask = static_cast<uintptr_t>(-1) << Bits
+  };
+
+  friend class PointerLikeTypeTraits<PointerEmbeddedInt>;
+
+  explicit PointerEmbeddedInt(uintptr_t Value) : Value(Value) {}
+
+public:
+  PointerEmbeddedInt() : Value(0) {}
+
+  PointerEmbeddedInt(IntT I) : Value(static_cast<uintptr_t>(I) << Shift) {
+    assert((I & Mask) == 0 && "Integer has bits outside those preserved!");
+  }
+
+  PointerEmbeddedInt &operator=(IntT I) {
+    assert((I & Mask) == 0 && "Integer has bits outside those preserved!");
+    Value = static_cast<uintptr_t>(I) << Shift;
+  }
+
+  // Note that this imilict conversion additionally allows all of the basic
+  // comparison operators to work transparently, etc.
+  operator IntT() const { return static_cast<IntT>(Value >> Shift); }
+};
+
+// Provide pointer like traits to support use with pointer unions and sum
+// types.
+template <typename IntT, int Bits>
+class PointerLikeTypeTraits<PointerEmbeddedInt<IntT, Bits>> {
+  typedef PointerEmbeddedInt<IntT, Bits> T;
+
+public:
+  static inline void *getAsVoidPointer(const T &P) {
+    return reinterpret_cast<void *>(P.Value);
+  }
+  static inline T getFromVoidPointer(void *P) {
+    return T(reinterpret_cast<uintptr_t>(P));
+  }
+  static inline T getFromVoidPointer(const void *P) {
+    return T(reinterpret_cast<uintptr_t>(P));
+  }
+
+  enum { NumLowBitsAvailable = T::Shift };
+};
+
+// Teach DenseMap how to use PointerEmbeddedInt objects as keys if the Int type
+// itself can be a key.
+template <typename IntT, int Bits>
+struct DenseMapInfo<PointerEmbeddedInt<IntT, Bits>> {
+  typedef PointerEmbeddedInt<IntT, Bits> T;
+
+  typedef DenseMapInfo<IntT> IntInfo;
+
+  static inline T getEmptyKey() { return IntInfo::getEmptyKey(); }
+  static inline T getTombstoneKey() { return IntInfo::getTombstoneKey(); }
+  static unsigned getHashValue(const T &Arg) {
+    return IntInfo::getHashValue(Arg);
+  }
+  static bool isEqual(const T &LHS, const T &RHS) { return LHS == RHS; }
+};
+}
+
+#endif

Modified: vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/include/llvm/ADT/PointerIntPair.h	Wed Jan 13 19:58:01 2016	(r293838)
@@ -55,20 +55,25 @@ public:
 
   PointerTy getPointer() const { return Info::getPointer(Value); }
 
-  IntType getInt() const { return (IntType)Info::getInt(Value); }
+  IntType getInt() const {
+    return (IntType)Info::getInt(Value);
+  }
 
   void setPointer(PointerTy PtrVal) {
     Value = Info::updatePointer(Value, PtrVal);
   }
 
-  void setInt(IntType IntVal) { Value = Info::updateInt(Value, IntVal); }
+  void setInt(IntType IntVal) {
+    Value = Info::updateInt(Value, static_cast<intptr_t>(IntVal));
+  }
 
   void initWithPointer(PointerTy PtrVal) {
     Value = Info::updatePointer(0, PtrVal);
   }
 
   void setPointerAndInt(PointerTy PtrVal, IntType IntVal) {
-    Value = Info::updateInt(Info::updatePointer(0, PtrVal), IntVal);
+    Value = Info::updateInt(Info::updatePointer(0, PtrVal),
+                            static_cast<intptr_t>(IntVal));
   }
 
   PointerTy const *getAddrOfPointer() const {

Added: vendor/llvm/dist/include/llvm/ADT/PointerSumType.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/llvm/dist/include/llvm/ADT/PointerSumType.h	Wed Jan 13 19:58:01 2016	(r293838)
@@ -0,0 +1,205 @@
+//===- llvm/ADT/PointerSumType.h --------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ADT_POINTERSUMTYPE_H
+#define LLVM_ADT_POINTERSUMTYPE_H
+
+#include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/Compiler.h"
+#include "llvm/Support/PointerLikeTypeTraits.h"
+
+namespace llvm {
+
+/// A compile time pair of an integer tag and the pointer-like type which it
+/// indexes within a sum type. Also allows the user to specify a particular
+/// traits class for pointer types with custom behavior such as over-aligned
+/// allocation.
+template <uintptr_t N, typename PointerArgT,
+          typename TraitsArgT = PointerLikeTypeTraits<PointerArgT>>
+struct PointerSumTypeMember {
+  enum { Tag = N };
+  typedef PointerArgT PointerT;
+  typedef TraitsArgT TraitsT;
+};
+
+namespace detail {
+
+template <typename TagT, typename... MemberTs>
+struct PointerSumTypeHelper;
+
+}
+
+/// A sum type over pointer-like types.
+///
+/// This is a normal tagged union across pointer-like types that uses the low
+/// bits of the pointers to store the tag.
+///
+/// Each member of the sum type is specified by passing a \c
+/// PointerSumTypeMember specialization in the variadic member argument list.
+/// This allows the user to control the particular tag value associated with
+/// a particular type, use the same type for multiple different tags, and
+/// customize the pointer-like traits used for a particular member. Note that
+/// these *must* be specializations of \c PointerSumTypeMember, no other type
+/// will suffice, even if it provides a compatible interface.
+///
+/// This type implements all of the comparison operators and even hash table
+/// support by comparing the underlying storage of the pointer values. It
+/// doesn't support delegating to particular members for comparisons.
+///
+/// It also default constructs to a zero tag with a null pointer, whatever that
+/// would be. This means that the zero value for the tag type is significant
+/// and may be desireable to set to a state that is particularly desirable to
+/// default construct.
+///
+/// There is no support for constructing or accessing with a dynamic tag as
+/// that would fundamentally violate the type safety provided by the sum type.
+template <typename TagT, typename... MemberTs> class PointerSumType {
+  uintptr_t Value;
+
+  typedef detail::PointerSumTypeHelper<TagT, MemberTs...> HelperT;
+
+public:
+  PointerSumType() : Value(0) {}
+
+  /// A typed constructor for a specific tagged member of the sum type.
+  template <TagT N>
+  static PointerSumType
+  create(typename HelperT::template Lookup<N>::PointerT Pointer) {
+    PointerSumType Result;
+    void *V = HelperT::template Lookup<N>::TraitsT::getAsVoidPointer(Pointer);
+    assert((reinterpret_cast<uintptr_t>(V) & HelperT::TagMask) == 0 &&
+           "Pointer is insufficiently aligned to store the discriminant!");
+    Result.Value = reinterpret_cast<uintptr_t>(V) | N;
+    return Result;
+  }
+
+  TagT getTag() const { return static_cast<TagT>(Value & HelperT::TagMask); }
+
+  template <TagT N> bool is() const { return N == getTag(); }
+
+  template <TagT N> typename HelperT::template Lookup<N>::PointerT get() const {
+    void *P = is<N>() ? getImpl() : nullptr;
+    return HelperT::template Lookup<N>::TraitsT::getFromVoidPointer(P);
+  }
+
+  template <TagT N>
+  typename HelperT::template Lookup<N>::PointerT cast() const {
+    assert(is<N>() && "This instance has a different active member.");
+    return HelperT::template Lookup<N>::TraitsT::getFromVoidPointer(getImpl());
+  }
+
+  operator bool() const { return Value & HelperT::PointerMask; }
+  bool operator==(const PointerSumType &R) const { return Value == R.Value; }
+  bool operator!=(const PointerSumType &R) const { return Value != R.Value; }
+  bool operator<(const PointerSumType &R) const { return Value < R.Value; }
+  bool operator>(const PointerSumType &R) const { return Value > R.Value; }
+  bool operator<=(const PointerSumType &R) const { return Value <= R.Value; }
+  bool operator>=(const PointerSumType &R) const { return Value >= R.Value; }
+
+  uintptr_t getOpaqueValue() const { return Value; }
+
+protected:
+  void *getImpl() const {
+    return reinterpret_cast<void *>(Value & HelperT::PointerMask);
+  }
+};
+
+namespace detail {
+
+/// A helper template for implementing \c PointerSumType. It provides fast
+/// compile-time lookup of the member from a particular tag value, along with
+/// useful constants and compile time checking infrastructure..
+template <typename TagT, typename... MemberTs>
+struct PointerSumTypeHelper : MemberTs... {
+  // First we use a trick to allow quickly looking up information about
+  // a particular member of the sum type. This works because we arranged to
+  // have this type derive from all of the member type templates. We can select
+  // the matching member for a tag using type deduction during overload
+  // resolution.
+  template <TagT N, typename PointerT, typename TraitsT>
+  static PointerSumTypeMember<N, PointerT, TraitsT>
+  LookupOverload(PointerSumTypeMember<N, PointerT, TraitsT> *);
+  template <TagT N> static void LookupOverload(...);
+  template <TagT N> struct Lookup {
+    // Compute a particular member type by resolving the lookup helper ovorload.
+    typedef decltype(LookupOverload<N>(
+        static_cast<PointerSumTypeHelper *>(nullptr))) MemberT;
+
+    /// The Nth member's pointer type.
+    typedef typename MemberT::PointerT PointerT;
+
+    /// The Nth member's traits type.
+    typedef typename MemberT::TraitsT TraitsT;
+  };
+
+  // Next we need to compute the number of bits available for the discriminant
+  // by taking the min of the bits available for each member. Much of this
+  // would be amazingly easier with good constexpr support.
+  template <uintptr_t V, uintptr_t... Vs>
+  struct Min : std::integral_constant<
+                   uintptr_t, (V < Min<Vs...>::value ? V : Min<Vs...>::value)> {
+  };
+  template <uintptr_t V>
+  struct Min<V> : std::integral_constant<uintptr_t, V> {};
+  enum { NumTagBits = Min<MemberTs::TraitsT::NumLowBitsAvailable...>::value };
+
+  // Also compute the smallest discriminant and various masks for convenience.
+  enum : uint64_t {
+    MinTag = Min<MemberTs::Tag...>::value,
+    PointerMask = static_cast<uint64_t>(-1) << NumTagBits,
+    TagMask = ~PointerMask
+  };
+
+  // Finally we need a recursive template to do static checks of each
+  // member.
+  template <typename MemberT, typename... InnerMemberTs>
+  struct Checker : Checker<InnerMemberTs...> {
+    static_assert(MemberT::Tag < (1 << NumTagBits),
+                  "This discriminant value requires too many bits!");
+  };
+  template <typename MemberT> struct Checker<MemberT> : std::true_type {
+    static_assert(MemberT::Tag < (1 << NumTagBits),
+                  "This discriminant value requires too many bits!");
+  };
+  static_assert(Checker<MemberTs...>::value,
+                "Each member must pass the checker.");
+};
+
+}
+
+// Teach DenseMap how to use PointerSumTypes as keys.
+template <typename TagT, typename... MemberTs>
+struct DenseMapInfo<PointerSumType<TagT, MemberTs...>> {
+  typedef PointerSumType<TagT, MemberTs...> SumType;
+
+  typedef detail::PointerSumTypeHelper<TagT, MemberTs...> HelperT;
+  enum { SomeTag = HelperT::MinTag };
+  typedef typename HelperT::template Lookup<HelperT::MinTag>::PointerT
+      SomePointerT;
+  typedef DenseMapInfo<SomePointerT> SomePointerInfo;
+
+  static inline SumType getEmptyKey() {
+    return SumType::create<SomeTag>(SomePointerInfo::getEmptyKey());
+  }
+  static inline SumType getTombstoneKey() {
+    return SumType::create<SomeTag>(
+        SomePointerInfo::getTombstoneKey());
+  }
+  static unsigned getHashValue(const SumType &Arg) {
+    uintptr_t OpaqueValue = Arg.getOpaqueValue();
+    return DenseMapInfo<uintptr_t>::getHashValue(OpaqueValue);
+  }
+  static bool isEqual(const SumType &LHS, const SumType &RHS) {
+    return LHS == RHS;
+  }
+};
+
+}
+
+#endif

Modified: vendor/llvm/dist/include/llvm/ADT/Twine.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/Twine.h	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/include/llvm/ADT/Twine.h	Wed Jan 13 19:58:01 2016	(r293838)
@@ -101,15 +101,13 @@ namespace llvm {
       /// A pointer to a SmallString instance.
       SmallStringKind,
 
-      /// A char value reinterpreted as a pointer, to render as a character.
+      /// A char value, to render as a character.
       CharKind,
 
-      /// An unsigned int value reinterpreted as a pointer, to render as an
-      /// unsigned decimal integer.
+      /// An unsigned int value, to render as an unsigned decimal integer.
       DecUIKind,
 
-      /// An int value reinterpreted as a pointer, to render as a signed
-      /// decimal integer.
+      /// An int value, to render as a signed decimal integer.
       DecIKind,
 
       /// A pointer to an unsigned long value, to render as an unsigned decimal

Modified: vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h	Wed Jan 13 19:52:25 2016	(r293837)
+++ vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h	Wed Jan 13 19:58:01 2016	(r293838)
@@ -104,54 +104,10 @@ class LazyCallGraph {
 public:
   class Node;
   class SCC;
+  class iterator;
   typedef SmallVector<PointerUnion<Function *, Node *>, 4> NodeVectorT;
   typedef SmallVectorImpl<PointerUnion<Function *, Node *>> NodeVectorImplT;
 
-  /// A lazy iterator used for both the entry nodes and child nodes.
-  ///
-  /// When this iterator is dereferenced, if not yet available, a function will
-  /// be scanned for "calls" or uses of functions and its child information
-  /// will be constructed. All of these results are accumulated and cached in
-  /// the graph.
-  class iterator
-      : public iterator_adaptor_base<iterator, NodeVectorImplT::iterator,
-                                     std::forward_iterator_tag, Node> {
-    friend class LazyCallGraph;
-    friend class LazyCallGraph::Node;
-
-    LazyCallGraph *G;
-    NodeVectorImplT::iterator E;
-
-    // Build the iterator for a specific position in a node list.
-    iterator(LazyCallGraph &G, NodeVectorImplT::iterator NI,
-             NodeVectorImplT::iterator E)
-        : iterator_adaptor_base(NI), G(&G), E(E) {
-      while (I != E && I->isNull())
-        ++I;
-    }
-
-  public:
-    iterator() {}
-
-    using iterator_adaptor_base::operator++;
-    iterator &operator++() {
-      do {
-        ++I;
-      } while (I != E && I->isNull());
-      return *this;
-    }
-
-    reference operator*() const {
-      if (I->is<Node *>())
-        return *I->get<Node *>();
-
-      Function *F = I->get<Function *>();
-      Node &ChildN = G->get(*F);
-      *I = &ChildN;
-      return ChildN;
-    }
-  };
-
   /// A node in the call graph.
   ///
   /// This represents a single node. It's primary roles are to cache the list of

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


More information about the svn-src-all mailing list