Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 May 2017 18:30:13 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r317683 - in vendor/llvm/dist: cmake/modules docs docs/TableGen include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/Bitcode include/llvm/CodeGen include/llvm/CodeGen/Global...
Message-ID:  <201705021830.v42IUDwK098524@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Tue May  2 18:30:13 2017
New Revision: 317683
URL: https://svnweb.freebsd.org/changeset/base/317683

Log:
  Vendor import of llvm trunk r301939:
  https://llvm.org/svn/llvm-project/llvm/trunk@301939

Added:
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugFragment.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugFragmentRecord.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugFragmentVisitor.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugInlineeLinesFragment.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugLineFragment.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleDebugUnknownFragment.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModuleDebugStreamBuilder.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h   (contents, props changed)
  vendor/llvm/dist/lib/CodeGen/MachineFrameInfo.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugFileChecksumFragment.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugFragmentRecord.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugFragmentVisitor.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugInlineeLinesFragment.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugLineFragment.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleDebugUnknownFragment.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModuleDebugStreamBuilder.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Support/Unix/DynamicLibrary.inc   (contents, props changed)
  vendor/llvm/dist/lib/Target/Mips/MicroMipsSizeReduction.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp   (contents, props changed)
  vendor/llvm/dist/test/Analysis/AliasSet/unknown-inst-tracking.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.init.exec.ll
  vendor/llvm/dist/test/CodeGen/AVR/rot.ll
  vendor/llvm/dist/test/CodeGen/BPF/mem_offset_be.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/cfgopt-fall-through.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/rdf-def-mask.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/unreachable-mbb-phi-subreg.mir
  vendor/llvm/dist/test/CodeGen/Mips/micromips-sizereduction/
  vendor/llvm/dist/test/CodeGen/Mips/micromips-sizereduction/micromips-lwsp-swsp.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/ext-x86-64.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/ext.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-ext-x86-64.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/legalize-ext.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/memop-x32.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/regbankselect-X86_64.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-ext-x86-64.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-ext.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-inc.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-memop-x32.mir
  vendor/llvm/dist/test/CodeGen/X86/addcarry.ll
  vendor/llvm/dist/test/CodeGen/X86/cast-vsel.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-0bh.ll
  vendor/llvm/dist/test/CodeGen/X86/pr28129.ll
  vendor/llvm/dist/test/CodeGen/X86/pr31088.ll
  vendor/llvm/dist/test/CodeGen/X86/stackmap-large-location-size.ll
  vendor/llvm/dist/test/DebugInfo/AMDGPU/dbg-value-sched-crash.ll
  vendor/llvm/dist/test/DebugInfo/Generic/thrownTypes.ll
  vendor/llvm/dist/test/DebugInfo/PDB/Inputs/simple-line-info.yaml
  vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-yaml-lineinfo-write.test
  vendor/llvm/dist/test/Instrumentation/AddressSanitizer/no-globals.ll
  vendor/llvm/dist/test/MC/AArch64/arm32-large-relocs.s   (contents, props changed)
  vendor/llvm/dist/test/MC/AArch64/arm32-tls-relocs.s   (contents, props changed)
  vendor/llvm/dist/test/MC/AArch64/elf-reloc-pcreladdressing-ilp32.s   (contents, props changed)
  vendor/llvm/dist/test/MC/AArch64/lp64-diagnostics.s   (contents, props changed)
  vendor/llvm/dist/test/MC/AsmParser/altmacro_expression.s   (contents, props changed)
  vendor/llvm/dist/test/MC/AsmParser/negativ_altmacro_expression.s   (contents, props changed)
  vendor/llvm/dist/test/MC/Hexagon/PacketRules/
  vendor/llvm/dist/test/MC/Hexagon/PacketRules/registers_readonly.s   (contents, props changed)
  vendor/llvm/dist/test/MC/Hexagon/PacketRules/solo.s   (contents, props changed)
  vendor/llvm/dist/test/MC/Hexagon/multiple_errs.s   (contents, props changed)
  vendor/llvm/dist/test/MC/Hexagon/registers_readonly.s   (contents, props changed)
  vendor/llvm/dist/test/MC/Hexagon/ro-c9.s   (contents, props changed)
  vendor/llvm/dist/test/MC/Hexagon/ro-cc9.s   (contents, props changed)
  vendor/llvm/dist/test/MC/WebAssembly/reloc-code.ll
  vendor/llvm/dist/test/MC/WebAssembly/reloc-data.ll
  vendor/llvm/dist/test/MC/WebAssembly/sections.ll
  vendor/llvm/dist/test/MC/X86/pr27884.s   (contents, props changed)
  vendor/llvm/dist/test/Transforms/CodeExtractor/PartialInlineAnd.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/PartialInlineAndOr.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/PartialInlineOr.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/PartialInlineOrAnd.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/SingleCondition.ll
  vendor/llvm/dist/test/Transforms/GlobalOpt/localize-constexpr-debuginfo.ll
  vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/infer-addrspacecast.ll
  vendor/llvm/dist/test/Transforms/Inline/AArch64/switch.ll
  vendor/llvm/dist/test/Transforms/InstCombine/apint-and.ll
  vendor/llvm/dist/test/Transforms/InstCombine/demorgan.ll
  vendor/llvm/dist/test/Transforms/LoopUnswitch/pr32818.ll
  vendor/llvm/dist/test/Transforms/NewGVN/pr32852.ll
  vendor/llvm/dist/test/Transforms/PGOProfile/memop_size_opt_zero.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2006-06-13-SingleEntryPHI.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2006-06-27-DeadSwitchCase.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-05-09-Unreachable.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-05-09-tl.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-07-12-ExitDomInfo.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-07-13-DomInfo.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-07-18-DomInfo.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-08-01-Dom.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-08-01-LCSSA.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2007-10-04-DomFrontier.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2008-06-02-DomInfo.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2008-06-17-DomFrontier.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2010-11-18-LCSSA.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2011-06-02-CritSwitch.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2011-09-26-EHCrash.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2012-04-02-IndirectBr.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2012-04-30-LoopUnswitch-LPad-Crash.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2012-05-20-Phi.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/2015-09-18-Addrspace.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/LIV-loop-condtion.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/basictest.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/cleanuppad.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/copy-metadata.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/crash.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/exponential-behavior.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/infinite-loop.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/msan.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/preserve-analyses.ll
  vendor/llvm/dist/test/Transforms/SimpleLoopUnswitch/trivial-unswitch.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/speculate-call.ll
  vendor/llvm/dist/test/Verifier/DISubprogram.ll
  vendor/llvm/dist/test/Verifier/speculatable-callsite-invalid.ll
  vendor/llvm/dist/test/Verifier/speculatable-callsite.ll
  vendor/llvm/dist/test/tools/llvm-pdbdump/raw-stream-data.test
  vendor/llvm/dist/test/tools/llvm-readobj/Inputs/const-import.lib   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-readobj/coff-const-import.test
  vendor/llvm/dist/test/tools/llvm-readobj/resources.test
  vendor/llvm/dist/tools/llvm-pdbdump/C13DebugFragmentVisitor.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/C13DebugFragmentVisitor.h   (contents, props changed)
  vendor/llvm/dist/unittests/Support/DynamicLibrary/CMakeLists.txt   (contents, props changed)
  vendor/llvm/dist/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp   (contents, props changed)
  vendor/llvm/dist/unittests/Support/DynamicLibrary/PipSqueak.cxx   (contents, props changed)
  vendor/llvm/dist/unittests/Support/DynamicLibrary/PipSqueak.h   (contents, props changed)
Deleted:
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleSubstream.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/ModuleSubstreamVisitor.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModInfo.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModInfoBuilder.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModStream.h
  vendor/llvm/dist/include/llvm/Object/ModuleSummaryIndexObjectFile.h
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleSubstream.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/ModuleSubstreamVisitor.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModInfo.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModInfoBuilder.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModStream.cpp
  vendor/llvm/dist/lib/Object/ModuleSummaryIndexObjectFile.cpp
  vendor/llvm/dist/lib/Support/SearchForAddressOfSpecialSymbol.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMInstructionSelector.h
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/X86-regbankselect.mir
  vendor/llvm/dist/test/CodeGen/X86/adde-carry.ll
  vendor/llvm/dist/test/CodeGen/X86/pr14657.ll
  vendor/llvm/dist/test/Transforms/InstCombine/apint-and1.ll
  vendor/llvm/dist/test/Transforms/InstCombine/apint-and2.ll
  vendor/llvm/dist/test/Transforms/InstCombine/demorgan-zext.ll
Modified:
  vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
  vendor/llvm/dist/cmake/modules/VersionFromVCS.cmake
  vendor/llvm/dist/docs/AMDGPUUsage.rst
  vendor/llvm/dist/docs/CMakeLists.txt
  vendor/llvm/dist/docs/LangRef.rst
  vendor/llvm/dist/docs/ProgrammersManual.rst
  vendor/llvm/dist/docs/README.txt
  vendor/llvm/dist/docs/StackMaps.rst
  vendor/llvm/dist/docs/TableGen/LangIntro.rst
  vendor/llvm/dist/docs/doxygen.cfg.in
  vendor/llvm/dist/include/llvm/ADT/APInt.h
  vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h
  vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h
  vendor/llvm/dist/include/llvm/Analysis/CallGraph.h
  vendor/llvm/dist/include/llvm/Analysis/IVUsers.h
  vendor/llvm/dist/include/llvm/Analysis/InlineCost.h
  vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h
  vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h
  vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h
  vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h
  vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h
  vendor/llvm/dist/include/llvm/Bitcode/BitcodeReader.h
  vendor/llvm/dist/include/llvm/Bitcode/LLVMBitCodes.h
  vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h
  vendor/llvm/dist/include/llvm/CodeGen/FunctionLoweringInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h
  vendor/llvm/dist/include/llvm/CodeGen/MIRYamlMapping.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineFrameInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
  vendor/llvm/dist/include/llvm/CodeGen/ValueTypes.td
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVRecord.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeView.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Line.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h
  vendor/llvm/dist/include/llvm/DebugInfo/DIContext.h
  vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFContext.h
  vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
  vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiStream.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawTypes.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/StringTableBuilder.h
  vendor/llvm/dist/include/llvm/DebugInfo/Symbolize/Symbolize.h
  vendor/llvm/dist/include/llvm/IR/Argument.h
  vendor/llvm/dist/include/llvm/IR/Attributes.h
  vendor/llvm/dist/include/llvm/IR/Attributes.td
  vendor/llvm/dist/include/llvm/IR/CallSite.h
  vendor/llvm/dist/include/llvm/IR/CallingConv.h
  vendor/llvm/dist/include/llvm/IR/DIBuilder.h
  vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h
  vendor/llvm/dist/include/llvm/IR/Function.h
  vendor/llvm/dist/include/llvm/IR/InstrTypes.h
  vendor/llvm/dist/include/llvm/IR/Instructions.h
  vendor/llvm/dist/include/llvm/IR/IntrinsicInst.h
  vendor/llvm/dist/include/llvm/IR/Intrinsics.td
  vendor/llvm/dist/include/llvm/IR/IntrinsicsAMDGPU.td
  vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndex.h
  vendor/llvm/dist/include/llvm/IR/ValueHandle.h
  vendor/llvm/dist/include/llvm/InitializePasses.h
  vendor/llvm/dist/include/llvm/MC/ConstantPools.h
  vendor/llvm/dist/include/llvm/MC/LaneBitmask.h
  vendor/llvm/dist/include/llvm/MC/MCAssembler.h
  vendor/llvm/dist/include/llvm/MC/MCContext.h
  vendor/llvm/dist/include/llvm/MC/MCDwarf.h
  vendor/llvm/dist/include/llvm/MC/MCExpr.h
  vendor/llvm/dist/include/llvm/MC/MCFragment.h
  vendor/llvm/dist/include/llvm/MC/MCInst.h
  vendor/llvm/dist/include/llvm/MC/MCLinkerOptimizationHint.h
  vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmLexer.h
  vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmParser.h
  vendor/llvm/dist/include/llvm/MC/MCParser/MCTargetAsmParser.h
  vendor/llvm/dist/include/llvm/MC/MCRegisterInfo.h
  vendor/llvm/dist/include/llvm/MC/MCSection.h
  vendor/llvm/dist/include/llvm/MC/MCSectionWasm.h
  vendor/llvm/dist/include/llvm/MC/MCStreamer.h
  vendor/llvm/dist/include/llvm/MC/MCSubtargetInfo.h
  vendor/llvm/dist/include/llvm/MC/MCSymbol.h
  vendor/llvm/dist/include/llvm/MC/MCWasmObjectWriter.h
  vendor/llvm/dist/include/llvm/Object/Binary.h
  vendor/llvm/dist/include/llvm/Object/COFF.h
  vendor/llvm/dist/include/llvm/Object/COFFImportFile.h
  vendor/llvm/dist/include/llvm/Object/ELF.h
  vendor/llvm/dist/include/llvm/Support/AArch64TargetParser.def
  vendor/llvm/dist/include/llvm/Support/BinaryStreamArray.h
  vendor/llvm/dist/include/llvm/Support/BinaryStreamReader.h
  vendor/llvm/dist/include/llvm/Support/BinaryStreamWriter.h
  vendor/llvm/dist/include/llvm/Support/CMakeLists.txt
  vendor/llvm/dist/include/llvm/Support/DynamicLibrary.h
  vendor/llvm/dist/include/llvm/Support/ELFRelocs/AArch64.def
  vendor/llvm/dist/include/llvm/Support/KnownBits.h
  vendor/llvm/dist/include/llvm/Support/LEB128.h
  vendor/llvm/dist/include/llvm/Support/ScopedPrinter.h
  vendor/llvm/dist/include/llvm/Support/StringSaver.h
  vendor/llvm/dist/include/llvm/Support/Wasm.h
  vendor/llvm/dist/include/llvm/Target/Target.td
  vendor/llvm/dist/include/llvm/Target/TargetLowering.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/NaryReassociate.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Local.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/ModuleUtils.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/SimplifyIndVar.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/ValueMapper.h
  vendor/llvm/dist/include/llvm/Transforms/Vectorize/SLPVectorizer.h
  vendor/llvm/dist/lib/Analysis/AssumptionCache.cpp
  vendor/llvm/dist/lib/Analysis/CFLGraph.h
  vendor/llvm/dist/lib/Analysis/CallGraphSCCPass.cpp
  vendor/llvm/dist/lib/Analysis/DemandedBits.cpp
  vendor/llvm/dist/lib/Analysis/InlineCost.cpp
  vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp
  vendor/llvm/dist/lib/Analysis/LazyValueInfo.cpp
  vendor/llvm/dist/lib/Analysis/Lint.cpp
  vendor/llvm/dist/lib/Analysis/PHITransAddr.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp
  vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp
  vendor/llvm/dist/lib/Analysis/ValueTracking.cpp
  vendor/llvm/dist/lib/AsmParser/LLLexer.cpp
  vendor/llvm/dist/lib/AsmParser/LLParser.cpp
  vendor/llvm/dist/lib/AsmParser/LLToken.h
  vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/ValueList.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/ValueList.h
  vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.h
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.h
  vendor/llvm/dist/lib/CodeGen/CMakeLists.txt
  vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp
  vendor/llvm/dist/lib/CodeGen/DFAPacketizer.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalISel/CallLowering.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalISel/IRTranslator.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalISel/InstructionSelector.cpp
  vendor/llvm/dist/lib/CodeGen/MIRParser/MIRParser.cpp
  vendor/llvm/dist/lib/CodeGen/MIRPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp
  vendor/llvm/dist/lib/CodeGen/MachineInstr.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/LegalizeTypes.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  vendor/llvm/dist/lib/CodeGen/StackMaps.cpp
  vendor/llvm/dist/lib/CodeGen/TargetLoweringBase.cpp
  vendor/llvm/dist/lib/CodeGen/UnreachableBlockElim.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/CMakeLists.txt
  vendor/llvm/dist/lib/DebugInfo/CodeView/EnumTables.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabase.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFFormValue.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/CMakeLists.txt
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiStream.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/StringTableBuilder.cpp
  vendor/llvm/dist/lib/DebugInfo/Symbolize/Symbolize.cpp
  vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Execution.cpp
  vendor/llvm/dist/lib/Fuzzer/FuzzerInternal.h
  vendor/llvm/dist/lib/Fuzzer/test/cxxstring.test
  vendor/llvm/dist/lib/IR/AsmWriter.cpp
  vendor/llvm/dist/lib/IR/Attributes.cpp
  vendor/llvm/dist/lib/IR/ConstantRange.cpp
  vendor/llvm/dist/lib/IR/DIBuilder.cpp
  vendor/llvm/dist/lib/IR/DebugInfoMetadata.cpp
  vendor/llvm/dist/lib/IR/Function.cpp
  vendor/llvm/dist/lib/IR/Instructions.cpp
  vendor/llvm/dist/lib/IR/LLVMContextImpl.h
  vendor/llvm/dist/lib/IR/Metadata.cpp
  vendor/llvm/dist/lib/IR/ModuleSummaryIndex.cpp
  vendor/llvm/dist/lib/IR/Value.cpp
  vendor/llvm/dist/lib/IR/Verifier.cpp
  vendor/llvm/dist/lib/LTO/LTO.cpp
  vendor/llvm/dist/lib/LTO/ThinLTOCodeGenerator.cpp
  vendor/llvm/dist/lib/MC/ELFObjectWriter.cpp
  vendor/llvm/dist/lib/MC/MCCodeView.cpp
  vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp
  vendor/llvm/dist/lib/MC/MCParser/MCAsmLexer.cpp
  vendor/llvm/dist/lib/MC/StringTableBuilder.cpp
  vendor/llvm/dist/lib/MC/WasmObjectWriter.cpp
  vendor/llvm/dist/lib/MC/WinCOFFObjectWriter.cpp
  vendor/llvm/dist/lib/Object/CMakeLists.txt
  vendor/llvm/dist/lib/Object/ELF.cpp
  vendor/llvm/dist/lib/Passes/PassBuilder.cpp
  vendor/llvm/dist/lib/Passes/PassRegistry.def
  vendor/llvm/dist/lib/Support/APInt.cpp
  vendor/llvm/dist/lib/Support/CMakeLists.txt
  vendor/llvm/dist/lib/Support/DynamicLibrary.cpp
  vendor/llvm/dist/lib/Support/PrettyStackTrace.cpp
  vendor/llvm/dist/lib/Support/ScopedPrinter.cpp
  vendor/llvm/dist/lib/Support/SourceMgr.cpp
  vendor/llvm/dist/lib/Support/Windows/DynamicLibrary.inc
  vendor/llvm/dist/lib/Target/AArch64/AArch64AsmPrinter.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64FastISel.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.h
  vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td
  vendor/llvm/dist/lib/Target/AArch64/AArch64InstructionSelector.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h
  vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.cpp
  vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
  vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
  vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
  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/AMDGPUMachineFunction.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/GCNSchedStrategy.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/R600Intrinsics.td
  vendor/llvm/dist/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIDefines.h
  vendor/llvm/dist/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARM.h
  vendor/llvm/dist/lib/Target/ARM/ARMCallLowering.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMFastISel.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/ARMInstructionSelector.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp
  vendor/llvm/dist/lib/Target/ARM/CMakeLists.txt
  vendor/llvm/dist/lib/Target/AVR/AVRFrameLowering.cpp
  vendor/llvm/dist/lib/Target/AVR/AVRISelLowering.cpp
  vendor/llvm/dist/lib/Target/AVR/AVRISelLowering.h
  vendor/llvm/dist/lib/Target/AVR/AVRInstrInfo.td
  vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.h
  vendor/llvm/dist/lib/Target/BPF/Disassembler/BPFDisassembler.cpp
  vendor/llvm/dist/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
  vendor/llvm/dist/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonBitTracker.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonCFGOptimizer.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonDepITypes.h
  vendor/llvm/dist/lib/Target/Hexagon/HexagonDepITypes.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonDepInstrInfo.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormats.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV60.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonMachineScheduler.h
  vendor/llvm/dist/lib/Target/Hexagon/HexagonRegisterInfo.td
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
  vendor/llvm/dist/lib/Target/Hexagon/RDFLiveness.cpp
  vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/Lanai/LanaiRegisterInfo.h
  vendor/llvm/dist/lib/Target/Mips/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/Mips/Mips.h
  vendor/llvm/dist/lib/Target/Mips/MipsFastISel.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXLowerArgs.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCInstrVSX.td
  vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.h
  vendor/llvm/dist/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp
  vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/TargetLoweringObjectFile.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
  vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h
  vendor/llvm/dist/lib/Target/X86/X86InstrCompiler.td
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td
  vendor/llvm/dist/lib/Target/X86/X86InstructionSelector.cpp
  vendor/llvm/dist/lib/Target/X86/X86LegalizerInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86OptimizeLEAs.cpp
  vendor/llvm/dist/lib/Target/X86/X86SelectionDAGInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.h
  vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreISelLowering.h
  vendor/llvm/dist/lib/Target/XCore/XCoreLowerThreadLocal.cpp
  vendor/llvm/dist/lib/Transforms/IPO/ArgumentPromotion.cpp
  vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp
  vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp
  vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp
  vendor/llvm/dist/lib/Transforms/IPO/LLVMBuild.txt
  vendor/llvm/dist/lib/Transforms/IPO/MergeFunctions.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PartialInlining.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp
  vendor/llvm/dist/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAddSub.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineInternal.h
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombinePHI.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSelect.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineShifts.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp
  vendor/llvm/dist/lib/Transforms/ObjCARC/ObjCARC.h
  vendor/llvm/dist/lib/Transforms/ObjCARC/PtrState.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/CMakeLists.txt
  vendor/llvm/dist/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/EarlyCSE.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/InferAddressSpaces.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopInstSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopRotation.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/MemCpyOptimizer.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/NaryReassociate.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/NewGVN.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Scalar.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
  vendor/llvm/dist/lib/Transforms/Utils/BasicBlockUtils.cpp
  vendor/llvm/dist/lib/Transforms/Utils/CloneFunction.cpp
  vendor/llvm/dist/lib/Transforms/Utils/InlineFunction.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
  vendor/llvm/dist/lib/Transforms/Utils/Local.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp
  vendor/llvm/dist/lib/Transforms/Utils/ModuleUtils.cpp
  vendor/llvm/dist/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyIndVar.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyInstructions.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp
  vendor/llvm/dist/test/Analysis/ScalarEvolution/flags-from-poison.ll
  vendor/llvm/dist/test/Assembler/dinamespace.ll
  vendor/llvm/dist/test/Assembler/disubprogram.ll
  vendor/llvm/dist/test/Bitcode/DINamespace.ll
  vendor/llvm/dist/test/Bitcode/attributes.ll
  vendor/llvm/dist/test/Bitcode/compatibility.ll
  vendor/llvm/dist/test/CodeGen/AArch64/arm64-anyregcc.ll
  vendor/llvm/dist/test/CodeGen/AArch64/arm64-stackmap.ll
  vendor/llvm/dist/test/CodeGen/AArch64/arm64-tls-dynamics.ll
  vendor/llvm/dist/test/CodeGen/AArch64/stackmap-liveness.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/inline-asm.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/zext-lid.ll
  vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
  vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-isel.ll
  vendor/llvm/dist/test/CodeGen/ARM/bool-ext-inc.ll
  vendor/llvm/dist/test/CodeGen/AVR/calling-conv/c/stack.ll
  vendor/llvm/dist/test/CodeGen/AVR/return.ll
  vendor/llvm/dist/test/CodeGen/AVR/varargs.ll
  vendor/llvm/dist/test/CodeGen/MIR/Generic/frame-info.mir
  vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/add.ll
  vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/sub.ll
  vendor/llvm/dist/test/CodeGen/NVPTX/f16-instructions.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/build-vector-tests.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-anyregcc.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-i128-abi.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-stackmap.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-1.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-2.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/vsx-ldst.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/vsx.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/binop.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/callingconv.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/irtranslator-call.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/memop.ll
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-add.mir
  vendor/llvm/dist/test/CodeGen/X86/GlobalISel/select-memop.mir
  vendor/llvm/dist/test/CodeGen/X86/all-ones-vector.ll
  vendor/llvm/dist/test/CodeGen/X86/anyregcc.ll
  vendor/llvm/dist/test/CodeGen/X86/avx-intrinsics-fast-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/bool-ext-inc.ll
  vendor/llvm/dist/test/CodeGen/X86/bswap_tree.ll
  vendor/llvm/dist/test/CodeGen/X86/clz.ll
  vendor/llvm/dist/test/CodeGen/X86/deopt-bundles.ll
  vendor/llvm/dist/test/CodeGen/X86/deopt-intrinsic-cconv.ll
  vendor/llvm/dist/test/CodeGen/X86/deopt-intrinsic.ll
  vendor/llvm/dist/test/CodeGen/X86/known-bits.ll
  vendor/llvm/dist/test/CodeGen/X86/known-signbits-vector.ll
  vendor/llvm/dist/test/CodeGen/X86/lea-opt-with-debug.mir
  vendor/llvm/dist/test/CodeGen/X86/mul-i1024.ll
  vendor/llvm/dist/test/CodeGen/X86/mul-i256.ll
  vendor/llvm/dist/test/CodeGen/X86/mul-i512.ll
  vendor/llvm/dist/test/CodeGen/X86/patchpoint-invoke.ll
  vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/stack-protector-dbginfo.ll
  vendor/llvm/dist/test/CodeGen/X86/stackmap-fast-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/stackmap-large-constants.ll
  vendor/llvm/dist/test/CodeGen/X86/stackmap-liveness.ll
  vendor/llvm/dist/test/CodeGen/X86/stackmap.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-allocas.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-live-in.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-stackmap-format.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-vector.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining.ll
  vendor/llvm/dist/test/CodeGen/X86/widened-broadcast.ll
  vendor/llvm/dist/test/DebugInfo/COFF/cpp-mangling.ll
  vendor/llvm/dist/test/DebugInfo/COFF/scopes.ll
  vendor/llvm/dist/test/DebugInfo/Generic/dwarf-public-names.ll
  vendor/llvm/dist/test/DebugInfo/Generic/namespace.ll
  vendor/llvm/dist/test/DebugInfo/Generic/namespace_function_definition.ll
  vendor/llvm/dist/test/DebugInfo/Generic/namespace_inline_function_definition.ll
  vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-headers.test
  vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-yaml-lineinfo.test
  vendor/llvm/dist/test/DebugInfo/X86/dwarf-linkage-names.ll
  vendor/llvm/dist/test/DebugInfo/X86/dwarf-public-names.ll
  vendor/llvm/dist/test/DebugInfo/X86/generate-odr-hash.ll
  vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names-tu.ll
  vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names.ll
  vendor/llvm/dist/test/DebugInfo/X86/inline-namespace.ll
  vendor/llvm/dist/test/DebugInfo/X86/lexical-block-file-inline.ll
  vendor/llvm/dist/test/DebugInfo/X86/multiple-at-const-val.ll
  vendor/llvm/dist/test/DebugInfo/X86/parameters.ll
  vendor/llvm/dist/test/DebugInfo/X86/pr19307.ll
  vendor/llvm/dist/test/DebugInfo/X86/union-template.ll
  vendor/llvm/dist/test/DebugInfo/dwarfdump-dump-gdbindex.test
  vendor/llvm/dist/test/Feature/optnone-opt.ll
  vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata.ll
  vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata_darwin.ll
  vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata_windows.ll
  vendor/llvm/dist/test/Instrumentation/AddressSanitizer/instrument_global.ll
  vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type.ll
  vendor/llvm/dist/test/Linker/2011-08-18-unique-class-type2.ll
  vendor/llvm/dist/test/Linker/pr26037.ll
  vendor/llvm/dist/test/MC/AArch64/adrp-relocation.s
  vendor/llvm/dist/test/MC/AArch64/arm32-elf-relocs.s
  vendor/llvm/dist/test/MC/AArch64/arm64-elf-reloc-condbr.s
  vendor/llvm/dist/test/MC/AArch64/arm64-elf-relocs.s
  vendor/llvm/dist/test/MC/AArch64/arm64-tls-relocs.s
  vendor/llvm/dist/test/MC/AArch64/directive-arch-negative.s
  vendor/llvm/dist/test/MC/AArch64/elf-reloc-ldrlit.s
  vendor/llvm/dist/test/MC/AArch64/elf-reloc-tstb.s
  vendor/llvm/dist/test/MC/AArch64/elf-reloc-uncondbrimm.s
  vendor/llvm/dist/test/MC/AArch64/error-location.s
  vendor/llvm/dist/test/MC/AArch64/ilp32-diagnostics.s
  vendor/llvm/dist/test/MC/AArch64/inline-asm-modifiers.s
  vendor/llvm/dist/test/MC/AArch64/tls-relocs.s
  vendor/llvm/dist/test/MC/AMDGPU/vop_dpp.s
  vendor/llvm/dist/test/MC/AMDGPU/vop_dpp_expr.s
  vendor/llvm/dist/test/MC/AVR/inst-lds.s
  vendor/llvm/dist/test/MC/AVR/inst-sts.s
  vendor/llvm/dist/test/MC/ELF/section-numeric-invalid-type.s
  vendor/llvm/dist/test/MC/Mips/relocation.s
  vendor/llvm/dist/test/Other/new-pm-defaults.ll
  vendor/llvm/dist/test/TableGen/GlobalISelEmitter.td
  vendor/llvm/dist/test/ThinLTO/X86/debuginfo-cu-import.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/MultipleExitBranchProb.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/PartialInlineOptRemark.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/unreachable-block.ll
  vendor/llvm/dist/test/Transforms/EarlyCSE/guards.ll
  vendor/llvm/dist/test/Transforms/GVNHoist/hoist-inline.ll
  vendor/llvm/dist/test/Transforms/InferAddressSpaces/AMDGPU/infer-getelementptr.ll
  vendor/llvm/dist/test/Transforms/InferAddressSpaces/NVPTX/bug31948.ll
  vendor/llvm/dist/test/Transforms/InstCombine/amdgcn-intrinsics.ll
  vendor/llvm/dist/test/Transforms/InstCombine/and-or-not.ll
  vendor/llvm/dist/test/Transforms/InstCombine/and.ll
  vendor/llvm/dist/test/Transforms/InstCombine/apint-not.ll
  vendor/llvm/dist/test/Transforms/InstCombine/apint-or.ll
  vendor/llvm/dist/test/Transforms/InstCombine/assume2.ll
  vendor/llvm/dist/test/Transforms/InstCombine/not.ll
  vendor/llvm/dist/test/Transforms/InstSimplify/shufflevector.ll
  vendor/llvm/dist/test/Transforms/JumpThreading/fold-not-thread.ll
  vendor/llvm/dist/test/Transforms/ObjCARC/rv.ll
  vendor/llvm/dist/test/tools/llvm-lto/error.ll
  vendor/llvm/dist/test/tools/llvm-readobj/reloc-types.test
  vendor/llvm/dist/test/tools/llvm-readobj/relocations.test
  vendor/llvm/dist/test/tools/llvm-readobj/sections.test
  vendor/llvm/dist/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
  vendor/llvm/dist/tools/llvm-link/CMakeLists.txt
  vendor/llvm/dist/tools/llvm-link/llvm-link.cpp
  vendor/llvm/dist/tools/llvm-lto/llvm-lto.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/CMakeLists.txt
  vendor/llvm/dist/tools/llvm-pdbdump/CompactTypeDumpVisitor.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/CompactTypeDumpVisitor.h
  vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/PdbYaml.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/PdbYaml.h
  vendor/llvm/dist/tools/llvm-pdbdump/StreamUtil.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.h
  vendor/llvm/dist/tools/llvm-pdbdump/fuzzer/llvm-pdbdump-fuzzer.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.h
  vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp
  vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp
  vendor/llvm/dist/tools/llvm-readobj/ObjDumper.h
  vendor/llvm/dist/tools/llvm-readobj/WasmDumper.cpp
  vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.cpp
  vendor/llvm/dist/tools/opt/BreakpointPrinter.cpp
  vendor/llvm/dist/unittests/ADT/APIntTest.cpp
  vendor/llvm/dist/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp
  vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp
  vendor/llvm/dist/unittests/IR/MetadataTest.cpp
  vendor/llvm/dist/unittests/IR/ValueHandleTest.cpp
  vendor/llvm/dist/unittests/Support/BinaryStreamTest.cpp
  vendor/llvm/dist/unittests/Support/CMakeLists.txt
  vendor/llvm/dist/unittests/Target/AArch64/InstSizes.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenIntrinsics.h
  vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp
  vendor/llvm/dist/utils/TableGen/GlobalISelEmitter.cpp
  vendor/llvm/dist/utils/TableGen/IntrinsicEmitter.cpp
  vendor/llvm/dist/utils/TableGen/SubtargetFeatureInfo.cpp
  vendor/llvm/dist/utils/TableGen/SubtargetFeatureInfo.h
  vendor/llvm/dist/utils/TableGen/X86RecognizableInstr.cpp

Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Tue May  2 18:30:13 2017	(r317683)
@@ -17,6 +17,9 @@ else()
   set(LINKER_IS_LLD_LINK FALSE)
 endif()
 
+set(LLVM_ENABLE_LTO OFF CACHE STRING "Build LLVM with LTO. May be specified as Thin or Full to use a particular kind of LTO")
+string(TOUPPER "${LLVM_ENABLE_LTO}" uppercase_LLVM_ENABLE_LTO)
+
 # Ninja Job Pool support
 # The following only works with the Ninja generator in CMake >= 3.0.
 set(LLVM_PARALLEL_COMPILE_JOBS "" CACHE STRING
@@ -32,16 +35,19 @@ endif()
 
 set(LLVM_PARALLEL_LINK_JOBS "" CACHE STRING
   "Define the maximum number of concurrent link jobs.")
-if(LLVM_PARALLEL_LINK_JOBS)
-  if(NOT CMAKE_MAKE_PROGRAM MATCHES "ninja")
-    message(WARNING "Job pooling is only available with Ninja generators.")
-  else()
+if(CMAKE_MAKE_PROGRAM MATCHES "ninja")
+  if(NOT LLVM_PARALLEL_LINK_JOBS AND uppercase_LLVM_ENABLE_LTO STREQUAL "THIN")
+    message(STATUS "ThinLTO provides its own parallel linking - limiting parallel link jobs to 2.")
+    set(LLVM_PARALLEL_LINK_JOBS "2")
+  endif()
+  if(LLVM_PARALLEL_LINK_JOBS)
     set_property(GLOBAL APPEND PROPERTY JOB_POOLS link_job_pool=${LLVM_PARALLEL_LINK_JOBS})
     set(CMAKE_JOB_POOL_LINK link_job_pool)
   endif()
+elseif(LLVM_PARALLEL_LINK_JOBS)
+  message(WARNING "Job pooling is only available with Ninja generators.")
 endif()
 
-
 if (LINKER_IS_LLD_LINK)
   # Pass /MANIFEST:NO so that CMake doesn't run mt.exe on our binaries.  Adding
   # manifests with mt.exe breaks LLD's symbol tables and takes as much time as
@@ -724,8 +730,6 @@ append_if(LLVM_BUILD_INSTRUMENTED_COVERA
   CMAKE_EXE_LINKER_FLAGS
   CMAKE_SHARED_LINKER_FLAGS)
 
-set(LLVM_ENABLE_LTO OFF CACHE STRING "Build LLVM with LTO. May be specified as Thin or Full to use a particular kind of LTO")
-string(TOUPPER "${LLVM_ENABLE_LTO}" uppercase_LLVM_ENABLE_LTO)
 if(LLVM_ENABLE_LTO AND LLVM_ON_WIN32 AND NOT LINKER_IS_LLD_LINK)
   message(FATAL_ERROR "When compiling for Windows, LLVM_ENABLE_LTO requires using lld as the linker (point CMAKE_LINKER at lld-link.exe)")
 endif()

Modified: vendor/llvm/dist/cmake/modules/VersionFromVCS.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/VersionFromVCS.cmake	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/cmake/modules/VersionFromVCS.cmake	Tue May  2 18:30:13 2017	(r317683)
@@ -33,7 +33,8 @@ function(add_version_info_from_vcs VERS)
       execute_process(COMMAND ${git_executable} rev-parse --git-dir
         WORKING_DIRECTORY ${SOURCE_DIR}/cmake
         RESULT_VARIABLE git_result
-        OUTPUT_VARIABLE git_dir)
+        OUTPUT_VARIABLE git_dir
+        ERROR_QUIET)
       if(git_result EQUAL 0)
         # Try to get a ref-id
         string(STRIP "${git_dir}" git_dir)
@@ -45,7 +46,8 @@ function(add_version_info_from_vcs VERS)
             WORKING_DIRECTORY ${SOURCE_DIR}
             TIMEOUT 5
             RESULT_VARIABLE git_result
-            OUTPUT_VARIABLE git_output)
+            OUTPUT_VARIABLE git_output
+            ERROR_QUIET)
           if( git_result EQUAL 0 )
             string(REGEX MATCH "URL: ([^ \n]*)" svn_url ${git_output})
             if(svn_url)

Modified: vendor/llvm/dist/docs/AMDGPUUsage.rst
==============================================================================
--- vendor/llvm/dist/docs/AMDGPUUsage.rst	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/AMDGPUUsage.rst	Tue May  2 18:30:13 2017	(r317683)
@@ -83,7 +83,7 @@ handler as follows:
    Usage           Code Sequence Description
    =============== ============= ===============================================
    llvm.trap           s_endpgm      Causes wavefront to be terminated.
-   llvm.debugtrap Nothing.         Compiler warning generated that there is no trap handler installed.
+   llvm.debugtrap      Nothing       Compiler warning generated that there is no trap handler installed.
    =============== ============= ===============================================
 
 Assembler

Modified: vendor/llvm/dist/docs/CMakeLists.txt
==============================================================================
--- vendor/llvm/dist/docs/CMakeLists.txt	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/CMakeLists.txt	Tue May  2 18:30:13 2017	(r317683)
@@ -1,8 +1,8 @@
 
 if (DOXYGEN_FOUND)
 if (LLVM_ENABLE_DOXYGEN)
-  set(abs_top_srcdir ${LLVM_MAIN_SRC_DIR})
-  set(abs_top_builddir ${LLVM_BINARY_DIR})
+  set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
+  set(abs_top_builddir ${CMAKE_CURRENT_BINARY_DIR})
   
   if (HAVE_DOT)
     set(DOT ${LLVM_PATH_DOT})

Modified: vendor/llvm/dist/docs/LangRef.rst
==============================================================================
--- vendor/llvm/dist/docs/LangRef.rst	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/LangRef.rst	Tue May  2 18:30:13 2017	(r317683)
@@ -1535,6 +1535,17 @@ example:
 ``sanitize_thread``
     This attribute indicates that ThreadSanitizer checks
     (dynamic thread safety analysis) are enabled for this function.
+``speculatable``
+    This function attribute indicates that the function does not have any
+    effects besides calculating its result and does not have undefined behavior.
+    Note that ``speculatable`` is not enough to conclude that along any
+    particular exection path the number of calls to this function will not be
+    externally observable. This attribute is only valid on functions
+    and declarations, not on individual call sites. If a function is
+    incorrectly marked as speculatable and really does exhibit
+    undefined behavior, the undefined behavior may be observed even
+    if the call site is dead code.
+
 ``ssp``
     This attribute indicates that the function should emit a stack
     smashing protector. It is in the form of a "canary" --- a random value

Modified: vendor/llvm/dist/docs/ProgrammersManual.rst
==============================================================================
--- vendor/llvm/dist/docs/ProgrammersManual.rst	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/ProgrammersManual.rst	Tue May  2 18:30:13 2017	(r317683)
@@ -776,22 +776,21 @@ readability.
 Using cantFail to simplify safe callsites
 """""""""""""""""""""""""""""""""""""""""
 
-Some functions may only fail for a subset of their inputs. For such functions
-call-sites using known-safe inputs can assume that the result will be a success
-value.
+Some functions may only fail for a subset of their inputs, so calls using known
+safe inputs can be assumed to succeed.
 
 The cantFail functions encapsulate this by wrapping an assertion that their
 argument is a success value and, in the case of Expected<T>, unwrapping the
-T value from the Expected<T> argument:
+T value:
 
 .. code-block:: c++
 
-  Error mayFail(int X);
-  Expected<int> mayFail2(int X);
+  Error onlyFailsForSomeXValues(int X);
+  Expected<int> onlyFailsForSomeXValues2(int X);
 
   void foo() {
-    cantFail(mayFail(KnownSafeValue));
-    int Y = cantFail(mayFail2(KnownSafeValue));
+    cantFail(onlyFailsForSomeXValues(KnownSafeValue));
+    int Y = cantFail(onlyFailsForSomeXValues2(KnownSafeValue));
     ...
   }
 
@@ -801,8 +800,8 @@ terminate the program on an error input,
 is success. In debug builds this will result in an assertion failure if an error
 is encountered. In release builds the behavior of cantFail for failure values is
 undefined. As such, care must be taken in the use of cantFail: clients must be
-certain that a cantFail wrapped call really can not fail under any
-circumstances.
+certain that a cantFail wrapped call really can not fail with the given
+arguments.
 
 Use of the cantFail functions should be rare in library code, but they are
 likely to be of more use in tool and unit-test code where inputs and/or

Modified: vendor/llvm/dist/docs/README.txt
==============================================================================
--- vendor/llvm/dist/docs/README.txt	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/README.txt	Tue May  2 18:30:13 2017	(r317683)
@@ -51,3 +51,18 @@ running:
 
     cd docs/
     make -f Makefile.sphinx linkcheck
+
+Doxygen page Output
+==============
+
+Install doxygen <http://www.stack.nl/~dimitri/doxygen/download.html>; and dot2tex <https://dot2tex.readthedocs.io/en/latest>.
+
+    cd <build-dir>
+    cmake -DLLVM_ENABLE_DOXYGEN=On <llvm-top-src-dir>
+    make doxygen-llvm # for LLVM docs
+    make doxygen-clang # for clang docs
+
+It will generate html in
+    
+    <build-dir>/docs/doxygen/html # for LLVM docs
+    <build-dir>/tools/clang/docs/doxygen/html # for clang docs

Modified: vendor/llvm/dist/docs/StackMaps.rst
==============================================================================
--- vendor/llvm/dist/docs/StackMaps.rst	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/StackMaps.rst	Tue May  2 18:30:13 2017	(r317683)
@@ -319,7 +319,7 @@ format of this section follows:
 .. code-block:: none
 
   Header {
-    uint8  : Stack Map Version (current version is 2)
+    uint8  : Stack Map Version (current version is 3)
     uint8  : Reserved (expected to be 0)
     uint16 : Reserved (expected to be 0)
   }
@@ -341,10 +341,13 @@ format of this section follows:
     uint16 : NumLocations
     Location[NumLocations] {
       uint8  : Register | Direct | Indirect | Constant | ConstantIndex
-      uint8  : Reserved (location flags)
+      uint8  : Reserved (expected to be 0)
+      uint16 : Location Size
       uint16 : Dwarf RegNum
+      uint16 : Reserved (expected to be 0)
       int32  : Offset or SmallConstant
     }
+    uint32 : Padding (only if required to align to 8 byte)
     uint16 : Padding
     uint16 : NumLiveOuts
     LiveOuts[NumLiveOuts]

Modified: vendor/llvm/dist/docs/TableGen/LangIntro.rst
==============================================================================
--- vendor/llvm/dist/docs/TableGen/LangIntro.rst	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/TableGen/LangIntro.rst	Tue May  2 18:30:13 2017	(r317683)
@@ -58,6 +58,10 @@ types are:
     The 'string' type represents an ordered sequence of characters of arbitrary
     length.
 
+``code``
+    The `code` type represents a code fragment, which can be single/multi-line
+    string literal.
+
 ``bits<n>``
     A 'bits' type is an arbitrary, but fixed, size integer that is broken up
     into individual bits.  This type is useful because it can handle some bits
@@ -105,7 +109,7 @@ supported include:
     hexadecimal integer value
 
 ``"foo"``
-    string value
+    a single-line string value, can be assigned to ``string`` or ``code`` variable.
 
 ``[{ ... }]``
     usually called a "code fragment", but is just a multiline string literal
@@ -126,7 +130,8 @@ supported include:
     access to one bit of a value
 
 ``value{15-17}``
-    access to multiple bits of a value
+    access to an ordered sequence of bits of a value, in particular ``value{15-17}``
+    produces an order that is the reverse of ``value{17-15}``.
 
 ``DEF``
     reference to a record definition

Modified: vendor/llvm/dist/docs/doxygen.cfg.in
==============================================================================
--- vendor/llvm/dist/docs/doxygen.cfg.in	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/docs/doxygen.cfg.in	Tue May  2 18:30:13 2017	(r317683)
@@ -58,7 +58,7 @@ PROJECT_LOGO           =
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = @abs_top_builddir@/docs/doxygen
+OUTPUT_DIRECTORY       = @abs_top_builddir@/doxygen
 
 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format and
@@ -132,7 +132,7 @@ INLINE_INHERITED_MEMB  = NO
 # shortest path that makes the file name unique will be used
 # The default value is: YES.
 
-FULL_PATH_NAMES        = NO
+FULL_PATH_NAMES        = YES
 
 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
 # Stripping is only done if one of the specified strings matches the left-hand
@@ -144,7 +144,7 @@ FULL_PATH_NAMES        = NO
 # will be relative from the directory where doxygen is started.
 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
-STRIP_FROM_PATH        = ../..
+STRIP_FROM_PATH        = @abs_top_srcdir@/..
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
 # path mentioned in the documentation of a class, which tells the reader which
@@ -153,7 +153,8 @@ STRIP_FROM_PATH        = ../..
 # specify the list of include paths that are normally passed to the compiler
 # using the -I flag.
 
-STRIP_FROM_INC_PATH    =
+STRIP_FROM_INC_PATH    = @abs_top_srcdir@/../include
+STRIP_FROM_INC_PATH    += @abs_top_srcdir@/../lib
 
 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
 # less readable) file names. This can be useful is your file systems doesn't
@@ -513,7 +514,7 @@ SHOW_GROUPED_MEMB_INC  = NO
 # files with double quotes in the documentation rather than with sharp brackets.
 # The default value is: NO.
 
-FORCE_LOCAL_INCLUDES   = NO
+FORCE_LOCAL_INCLUDES   = YES
 
 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
 # documentation for inline members.
@@ -743,9 +744,9 @@ WARN_LOGFILE           =
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = @abs_top_srcdir@/include \
-                         @abs_top_srcdir@/lib \
-                         @abs_top_srcdir@/docs/doxygen-mainpage.dox
+INPUT                  = @abs_top_srcdir@/../include \
+                         @abs_top_srcdir@/../lib \
+                         @abs_top_srcdir@/doxygen-mainpage.dox
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -813,7 +814,7 @@ EXCLUDE_SYMBOLS        =
 # that contain example code fragments that are included (see the \include
 # command).
 
-EXAMPLE_PATH           = @abs_top_srcdir@/examples
+EXAMPLE_PATH           = @abs_top_srcdir@/../examples
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -833,7 +834,7 @@ EXAMPLE_RECURSIVE      = YES
 # that contain images that are to be included in the documentation (see the
 # \image command).
 
-IMAGE_PATH             = @abs_top_srcdir@/docs/img
+IMAGE_PATH             = @abs_top_srcdir@/img
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should
 # invoke to filter for each input file. Doxygen will invoke the filter program

Modified: vendor/llvm/dist/include/llvm/ADT/APInt.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/APInt.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/ADT/APInt.h	Tue May  2 18:30:13 2017	(r317683)
@@ -366,7 +366,7 @@ public:
   /// that 0 is not a positive value.
   ///
   /// \returns true if this APInt is positive.
-  bool isStrictlyPositive() const { return isNonNegative() && !!*this; }
+  bool isStrictlyPositive() const { return isNonNegative() && !isNullValue(); }
 
   /// \brief Determine if all bits are set
   ///
@@ -377,6 +377,12 @@ public:
     return countPopulationSlowCase() == BitWidth;
   }
 
+  /// \brief Determine if all bits are clear
+  ///
+  /// This checks to see if the value has all bits of the APInt are clear or
+  /// not.
+  bool isNullValue() const { return !*this; }
+
   /// \brief Determine if this is the largest unsigned value.
   ///
   /// This checks to see if the value of this APInt is the maximum unsigned
@@ -395,7 +401,7 @@ public:
   ///
   /// This checks to see if the value of this APInt is the minimum unsigned
   /// value for the APInt's bit width.
-  bool isMinValue() const { return !*this; }
+  bool isMinValue() const { return isNullValue(); }
 
   /// \brief Determine if this is the smallest signed value.
   ///
@@ -611,15 +617,7 @@ public:
   }
 
   /// \brief Return a value containing V broadcasted over NewLen bits.
-  static APInt getSplat(unsigned NewLen, const APInt &V) {
-    assert(NewLen >= V.getBitWidth() && "Can't splat to smaller bit width!");
-
-    APInt Val = V.zextOrSelf(NewLen);
-    for (unsigned I = V.getBitWidth(); I < NewLen; I <<= 1)
-      Val |= Val << I;
-
-    return Val;
-  }
+  static APInt getSplat(unsigned NewLen, const APInt &V);
 
   /// \brief Determine if two APInts have the same value, after zero-extending
   /// one of them (if needed!) to ensure that the bit-widths match.
@@ -687,7 +685,9 @@ public:
   ///
   /// \returns true if *this is zero, false otherwise.
   bool operator!() const {
-    return *this == 0;
+    if (isSingleWord())
+      return VAL == 0;
+    return countLeadingZerosSlowCase() == BitWidth;
   }
 
   /// @}
@@ -874,6 +874,13 @@ public:
     return *this;
   }
 
+  /// \brief Left-shift assignment function.
+  ///
+  /// Shifts *this left by shiftAmt and assigns the result to *this.
+  ///
+  /// \returns *this after shifting left by ShiftAmt
+  APInt &operator<<=(const APInt &ShiftAmt);
+
   /// @}
   /// \name Binary Operators
   /// @{
@@ -981,7 +988,11 @@ public:
   /// \brief Left-shift function.
   ///
   /// Left-shift this APInt by shiftAmt.
-  APInt shl(const APInt &shiftAmt) const;
+  APInt shl(const APInt &ShiftAmt) const {
+    APInt R(*this);
+    R <<= ShiftAmt;
+    return R;
+  }
 
   /// \brief Rotate left by rotateAmt.
   APInt rotl(const APInt &rotateAmt) const;
@@ -1333,7 +1344,14 @@ public:
   /// \brief Set a given bit to 1.
   ///
   /// Set the given bit to 1 whose position is given as "bitPosition".
-  void setBit(unsigned bitPosition);
+  void setBit(unsigned BitPosition) {
+    assert(BitPosition <= BitWidth && "BitPosition out of range");
+    WordType Mask = maskBit(BitPosition);
+    if (isSingleWord())
+      VAL |= Mask;
+    else
+      pVal[whichWord(BitPosition)] |= Mask;
+  }
 
   /// Set the sign bit to 1.
   void setSignBit() {
@@ -1344,13 +1362,9 @@ public:
   void setBits(unsigned loBit, unsigned hiBit) {
     assert(hiBit <= BitWidth && "hiBit out of range");
     assert(loBit <= BitWidth && "loBit out of range");
+    assert(loBit <= hiBit && "loBit greater than hiBit");
     if (loBit == hiBit)
       return;
-    if (loBit > hiBit) {
-      setLowBits(hiBit);
-      setHighBits(BitWidth - loBit);
-      return;
-    }
     if (loBit < APINT_BITS_PER_WORD && hiBit <= APINT_BITS_PER_WORD) {
       uint64_t mask = WORD_MAX >> (APINT_BITS_PER_WORD - (hiBit - loBit));
       mask <<= loBit;
@@ -1389,7 +1403,19 @@ public:
   /// \brief Set a given bit to 0.
   ///
   /// Set the given bit to 0 whose position is given as "bitPosition".
-  void clearBit(unsigned bitPosition);
+  void clearBit(unsigned BitPosition) {
+    assert(BitPosition <= BitWidth && "BitPosition out of range");
+    WordType Mask = ~maskBit(BitPosition);
+    if (isSingleWord())
+      VAL &= Mask;
+    else
+      pVal[whichWord(BitPosition)] &= Mask;
+  }
+
+  /// Set the sign bit to 0.
+  void clearSignBit() {
+    clearBit(BitWidth - 1);
+  }
 
   /// \brief Toggle every bit to its opposite value.
   void flipAllBits() {
@@ -1695,7 +1721,7 @@ public:
       return VAL - 1;
 
     // Handle the zero case.
-    if (!getBoolValue())
+    if (isNullValue())
       return UINT32_MAX;
 
     // The non-zero case is handled by computing:

Modified: vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h	Tue May  2 18:30:13 2017	(r317683)
@@ -43,7 +43,7 @@ class AssumptionCache {
 
   /// \brief Vector of weak value handles to calls of the @llvm.assume
   /// intrinsic.
-  SmallVector<WeakVH, 4> AssumeHandles;
+  SmallVector<WeakTrackingVH, 4> AssumeHandles;
 
   class AffectedValueCallbackVH final : public CallbackVH {
     AssumptionCache *AC;
@@ -62,12 +62,12 @@ class AssumptionCache {
   /// \brief A map of values about which an assumption might be providing
   /// information to the relevant set of assumptions.
   using AffectedValuesMap =
-    DenseMap<AffectedValueCallbackVH, SmallVector<WeakVH, 1>,
-             AffectedValueCallbackVH::DMI>;
+      DenseMap<AffectedValueCallbackVH, SmallVector<WeakTrackingVH, 1>,
+               AffectedValueCallbackVH::DMI>;
   AffectedValuesMap AffectedValues;
 
   /// Get the vector of assumptions which affect a value from the cache.
-  SmallVector<WeakVH, 1> &getOrInsertAffectedValues(Value *V);
+  SmallVector<WeakTrackingVH, 1> &getOrInsertAffectedValues(Value *V);
 
   /// Copy affected values in the cache for OV to be affected values for NV.
   void copyAffectedValuesInCache(Value *OV, Value *NV);
@@ -120,20 +120,20 @@ public:
   /// FIXME: We should replace this with pointee_iterator<filter_iterator<...>>
   /// when we can write that to filter out the null values. Then caller code
   /// will become simpler.
-  MutableArrayRef<WeakVH> assumptions() {
+  MutableArrayRef<WeakTrackingVH> assumptions() {
     if (!Scanned)
       scanFunction();
     return AssumeHandles;
   }
 
   /// \brief Access the list of assumptions which affect this value.
-  MutableArrayRef<WeakVH> assumptionsFor(const Value *V) {
+  MutableArrayRef<WeakTrackingVH> assumptionsFor(const Value *V) {
     if (!Scanned)
       scanFunction();
 
     auto AVI = AffectedValues.find_as(const_cast<Value *>(V));
     if (AVI == AffectedValues.end())
-      return MutableArrayRef<WeakVH>();
+      return MutableArrayRef<WeakTrackingVH>();
 
     return AVI->second;
   }

Modified: vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/CGSCCPassManager.h	Tue May  2 18:30:13 2017	(r317683)
@@ -646,7 +646,7 @@ public:
     LazyCallGraph::SCC *C = &InitialC;
 
     // Collect value handles for all of the indirect call sites.
-    SmallVector<WeakVH, 8> CallHandles;
+    SmallVector<WeakTrackingVH, 8> CallHandles;
 
     // Struct to track the counts of direct and indirect calls in each function
     // of the SCC.
@@ -658,7 +658,7 @@ public:
     // Put value handles on all of the indirect calls and return the number of
     // direct calls for each function in the SCC.
     auto ScanSCC = [](LazyCallGraph::SCC &C,
-                      SmallVectorImpl<WeakVH> &CallHandles) {
+                      SmallVectorImpl<WeakTrackingVH> &CallHandles) {
       assert(CallHandles.empty() && "Must start with a clear set of handles.");
 
       SmallVector<CallCount, 4> CallCounts;
@@ -671,7 +671,7 @@ public:
               ++Count.Direct;
             } else {
               ++Count.Indirect;
-              CallHandles.push_back(WeakVH(&I));
+              CallHandles.push_back(WeakTrackingVH(&I));
             }
           }
       }
@@ -699,7 +699,7 @@ public:
              "Cannot have changed the size of the SCC!");
 
       // Check whether any of the handles were devirtualized.
-      auto IsDevirtualizedHandle = [&](WeakVH &CallH) {
+      auto IsDevirtualizedHandle = [&](WeakTrackingVH &CallH) {
         if (!CallH)
           return false;
         auto CS = CallSite(CallH);

Modified: vendor/llvm/dist/include/llvm/Analysis/CallGraph.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/CallGraph.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/CallGraph.h	Tue May  2 18:30:13 2017	(r317683)
@@ -172,7 +172,7 @@ class CallGraphNode {
 public:
   /// \brief A pair of the calling instruction (a call or invoke)
   /// and the call graph node being called.
-  typedef std::pair<WeakVH, CallGraphNode *> CallRecord;
+  typedef std::pair<WeakTrackingVH, CallGraphNode *> CallRecord;
 
 public:
   typedef std::vector<CallRecord> CalledFunctionsVector;

Modified: vendor/llvm/dist/include/llvm/Analysis/IVUsers.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/IVUsers.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/IVUsers.h	Tue May  2 18:30:13 2017	(r317683)
@@ -80,7 +80,7 @@ private:
 
   /// OperandValToReplace - The Value of the operand in the user instruction
   /// that this IVStrideUse is representing.
-  WeakVH OperandValToReplace;
+  WeakTrackingVH OperandValToReplace;
 
   /// PostIncLoops - The set of loops for which Expr has been adjusted to
   /// use post-inc mode. This corresponds with SCEVExpander's post-inc concept.

Modified: vendor/llvm/dist/include/llvm/Analysis/InlineCost.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/InlineCost.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/InlineCost.h	Tue May  2 18:30:13 2017	(r317683)
@@ -160,6 +160,10 @@ InlineParams getInlineParams(int Thresho
 /// the -Oz flag.
 InlineParams getInlineParams(unsigned OptLevel, unsigned SizeOptLevel);
 
+/// Return the cost associated with a callsite, including paramater passing
+/// and the call/return instruction.
+int getCallsiteCost(CallSite CS, const DataLayout &DL);
+
 /// \brief Get an InlineCost object representing the cost of inlining this
 /// callsite.
 ///

Modified: vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/InstructionSimplify.h	Tue May  2 18:30:13 2017	(r317683)
@@ -35,35 +35,41 @@
 #include "llvm/IR/User.h"
 
 namespace llvm {
-  template<typename T>
-  class ArrayRef;
-  class AssumptionCache;
-  class DominatorTree;
-  class Instruction;
-  class DataLayout;
-  class FastMathFlags;
-  class OptimizationRemarkEmitter;
-  class TargetLibraryInfo;
-  class Type;
-  class Value;
-
-  struct SimplifyQuery {
-    const DataLayout &DL;
-    const TargetLibraryInfo *TLI = nullptr;
-    const DominatorTree *DT = nullptr;
-    AssumptionCache *AC = nullptr;
-    const Instruction *CxtI = nullptr;
-    SimplifyQuery(const DataLayout &DL) : DL(DL) {}
-
-    SimplifyQuery(const DataLayout &DL, const TargetLibraryInfo *TLI,
-                  const DominatorTree *DT, AssumptionCache *AC = nullptr,
-                  const Instruction *CXTI = nullptr)
-        : DL(DL), TLI(TLI), DT(DT), AC(AC), CxtI(CXTI) {}
-    SimplifyQuery getWithInstruction(Instruction *I) const {
-      SimplifyQuery Copy(*this);
-      Copy.CxtI = I;
-      return Copy;
-    }
+class Function;
+template <typename T, typename... TArgs> class AnalysisManager;
+template <class T> class ArrayRef;
+class AssumptionCache;
+class DominatorTree;
+class Instruction;
+class DataLayout;
+class FastMathFlags;
+struct LoopStandardAnalysisResults;
+class OptimizationRemarkEmitter;
+class Pass;
+class TargetLibraryInfo;
+class Type;
+class Value;
+
+struct SimplifyQuery {
+  const DataLayout &DL;
+  const TargetLibraryInfo *TLI = nullptr;
+  const DominatorTree *DT = nullptr;
+  AssumptionCache *AC = nullptr;
+  const Instruction *CxtI = nullptr;
+
+  SimplifyQuery(const DataLayout &DL, const Instruction *CXTI = nullptr)
+      : DL(DL), CxtI(CXTI) {}
+
+  SimplifyQuery(const DataLayout &DL, const TargetLibraryInfo *TLI,
+                const DominatorTree *DT = nullptr,
+                AssumptionCache *AC = nullptr,
+                const Instruction *CXTI = nullptr)
+      : DL(DL), TLI(TLI), DT(DT), AC(AC), CxtI(CXTI) {}
+  SimplifyQuery getWithInstruction(Instruction *I) const {
+    SimplifyQuery Copy(*this);
+    Copy.CxtI = I;
+    return Copy;
+  }
   };
 
   // NOTE: the explicit multiple argument versions of these functions are
@@ -73,257 +79,103 @@ namespace llvm {
   /// Given operands for an Add, fold the result or return null.
   Value *SimplifyAddInst(Value *LHS, Value *RHS, bool isNSW, bool isNUW,
                        const SimplifyQuery &Q);
-  Value *SimplifyAddInst(Value *LHS, Value *RHS, bool isNSW, bool isNUW,
-                         const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for a Sub, fold the result or return null.
   Value *SimplifySubInst(Value *LHS, Value *RHS, bool isNSW, bool isNUW,
                          const SimplifyQuery &Q);
-  Value *SimplifySubInst(Value *LHS, Value *RHS, bool isNSW, bool isNUW,
-                         const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for an FAdd, fold the result or return null.
   Value *SimplifyFAddInst(Value *LHS, Value *RHS, FastMathFlags FMF,
                           const SimplifyQuery &Q);
-  Value *SimplifyFAddInst(Value *LHS, Value *RHS, FastMathFlags FMF,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an FSub, fold the result or return null.
   Value *SimplifyFSubInst(Value *LHS, Value *RHS, FastMathFlags FMF,
                           const SimplifyQuery &Q);
-  Value *SimplifyFSubInst(Value *LHS, Value *RHS, FastMathFlags FMF,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an FMul, fold the result or return null.
   Value *SimplifyFMulInst(Value *LHS, Value *RHS, FastMathFlags FMF,
                           const SimplifyQuery &Q);
-  Value *SimplifyFMulInst(Value *LHS, Value *RHS, FastMathFlags FMF,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a Mul, fold the result or return null.
   Value *SimplifyMulInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifyMulInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for an SDiv, fold the result or return null.
   Value *SimplifySDivInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifySDivInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a UDiv, fold the result or return null.
   Value *SimplifyUDivInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifyUDivInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an FDiv, fold the result or return null.
   Value *SimplifyFDivInst(Value *LHS, Value *RHS, FastMathFlags FMF,
                           const SimplifyQuery &Q);
-  Value *SimplifyFDivInst(Value *LHS, Value *RHS, FastMathFlags FMF,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an SRem, fold the result or return null.
   Value *SimplifySRemInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifySRemInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a URem, fold the result or return null.
   Value *SimplifyURemInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifyURemInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an FRem, fold the result or return null.
   Value *SimplifyFRemInst(Value *LHS, Value *RHS, FastMathFlags FMF,
                           const SimplifyQuery &Q);
-  Value *SimplifyFRemInst(Value *LHS, Value *RHS, FastMathFlags FMF,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a Shl, fold the result or return null.
   Value *SimplifyShlInst(Value *Op0, Value *Op1, bool isNSW, bool isNUW,
                          const SimplifyQuery &Q);
-  Value *SimplifyShlInst(Value *Op0, Value *Op1, bool isNSW, bool isNUW,
-                         const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for a LShr, fold the result or return null.
   Value *SimplifyLShrInst(Value *Op0, Value *Op1, bool isExact,
                           const SimplifyQuery &Q);
-  Value *SimplifyLShrInst(Value *Op0, Value *Op1, bool isExact,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a AShr, fold the result or return nulll.
   Value *SimplifyAShrInst(Value *Op0, Value *Op1, bool isExact,
                           const SimplifyQuery &Q);
-  Value *SimplifyAShrInst(Value *Op0, Value *Op1, bool isExact,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an And, fold the result or return null.
   Value *SimplifyAndInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifyAndInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for an Or, fold the result or return null.
   Value *SimplifyOrInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifyOrInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                        const TargetLibraryInfo *TLI = nullptr,
-                        const DominatorTree *DT = nullptr,
-                        AssumptionCache *AC = nullptr,
-                        const Instruction *CxtI = nullptr);
 
   /// Given operands for an Xor, fold the result or return null.
   Value *SimplifyXorInst(Value *LHS, Value *RHS, const SimplifyQuery &Q);
-  Value *SimplifyXorInst(Value *LHS, Value *RHS, const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for an ICmpInst, fold the result or return null.
   Value *SimplifyICmpInst(unsigned Predicate, Value *LHS, Value *RHS,
                           const SimplifyQuery &Q);
-  Value *SimplifyICmpInst(unsigned Predicate, Value *LHS, Value *RHS,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for an FCmpInst, fold the result or return null.
   Value *SimplifyFCmpInst(unsigned Predicate, Value *LHS, Value *RHS,
                           FastMathFlags FMF, const SimplifyQuery &Q);
-  Value *SimplifyFCmpInst(unsigned Predicate, Value *LHS, Value *RHS,
-                          FastMathFlags FMF, const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a SelectInst, fold the result or return null.
   Value *SimplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal,
                             const SimplifyQuery &Q);
-  Value *SimplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal,
-                            const DataLayout &DL,
-                            const TargetLibraryInfo *TLI = nullptr,
-                            const DominatorTree *DT = nullptr,
-                            AssumptionCache *AC = nullptr,
-                            const Instruction *CxtI = nullptr);
 
   /// Given operands for a GetElementPtrInst, fold the result or return null. 
   Value *SimplifyGEPInst(Type *SrcTy, ArrayRef<Value *> Ops,
                          const SimplifyQuery &Q);
-  Value *SimplifyGEPInst(Type *SrcTy, ArrayRef<Value *> Ops,
-                         const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for an InsertValueInst, fold the result or return null.
   Value *SimplifyInsertValueInst(Value *Agg, Value *Val,
                                  ArrayRef<unsigned> Idxs,
                                  const SimplifyQuery &Q);
-  Value *SimplifyInsertValueInst(Value *Agg, Value *Val,
-                                 ArrayRef<unsigned> Idxs, const DataLayout &DL,
-                                 const TargetLibraryInfo *TLI = nullptr,
-                                 const DominatorTree *DT = nullptr,
-                                 AssumptionCache *AC = nullptr,
-                                 const Instruction *CxtI = nullptr);
 
   /// Given operands for an ExtractValueInst, fold the result or return null.
   Value *SimplifyExtractValueInst(Value *Agg, ArrayRef<unsigned> Idxs,
                                   const SimplifyQuery &Q);
-  Value *SimplifyExtractValueInst(Value *Agg, ArrayRef<unsigned> Idxs,
-                                  const DataLayout &DL,
-                                  const TargetLibraryInfo *TLI = nullptr,
-                                  const DominatorTree *DT = nullptr,
-                                  AssumptionCache *AC = nullptr,
-                                  const Instruction *CxtI = nullptr);
 
   /// Given operands for an ExtractElementInst, fold the result or return null.
   Value *SimplifyExtractElementInst(Value *Vec, Value *Idx,
                                     const SimplifyQuery &Q);
-  Value *SimplifyExtractElementInst(Value *Vec, Value *Idx,
-                                    const DataLayout &DL,
-                                    const TargetLibraryInfo *TLI = nullptr,
-                                    const DominatorTree *DT = nullptr,
-                                    AssumptionCache *AC = nullptr,
-                                    const Instruction *CxtI = nullptr);
 
   /// Given operands for a CastInst, fold the result or return null.
   Value *SimplifyCastInst(unsigned CastOpc, Value *Op, Type *Ty,
                           const SimplifyQuery &Q);
-  Value *SimplifyCastInst(unsigned CastOpc, Value *Op, Type *Ty,
-                          const DataLayout &DL,
-                          const TargetLibraryInfo *TLI = nullptr,
-                          const DominatorTree *DT = nullptr,
-                          AssumptionCache *AC = nullptr,
-                          const Instruction *CxtI = nullptr);
 
   /// Given operands for a ShuffleVectorInst, fold the result or return null.
   Value *SimplifyShuffleVectorInst(Value *Op0, Value *Op1, Constant *Mask,
                                    Type *RetTy, const SimplifyQuery &Q);
-  Value *SimplifyShuffleVectorInst(Value *Op0, Value *Op1, Constant *Mask,
-                                   Type *RetTy, const DataLayout &DL,
-                                   const TargetLibraryInfo *TLI = nullptr,
-                                   const DominatorTree *DT = nullptr,
-                                   AssumptionCache *AC = nullptr,
-                                   const Instruction *CxtI = nullptr);
 
   //=== Helper functions for higher up the class hierarchy.
 
@@ -331,63 +183,29 @@ namespace llvm {
   /// Given operands for a CmpInst, fold the result or return null.
   Value *SimplifyCmpInst(unsigned Predicate, Value *LHS, Value *RHS,
                          const SimplifyQuery &Q);
-  Value *SimplifyCmpInst(unsigned Predicate, Value *LHS, Value *RHS,
-                         const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given operands for a BinaryOperator, fold the result or return null.
   Value *SimplifyBinOp(unsigned Opcode, Value *LHS, Value *RHS,
                        const SimplifyQuery &Q);
-  Value *SimplifyBinOp(unsigned Opcode, Value *LHS, Value *RHS,
-                       const DataLayout &DL,
-                       const TargetLibraryInfo *TLI = nullptr,
-                       const DominatorTree *DT = nullptr,
-                       AssumptionCache *AC = nullptr,
-                       const Instruction *CxtI = nullptr);
 
   /// Given operands for an FP BinaryOperator, fold the result or return null.
   /// In contrast to SimplifyBinOp, try to use FastMathFlag when folding the
   /// result. In case we don't need FastMathFlags, simply fall to SimplifyBinOp.
   Value *SimplifyFPBinOp(unsigned Opcode, Value *LHS, Value *RHS,
                          FastMathFlags FMF, const SimplifyQuery &Q);
-  Value *SimplifyFPBinOp(unsigned Opcode, Value *LHS, Value *RHS,
-                         FastMathFlags FMF, const DataLayout &DL,
-                         const TargetLibraryInfo *TLI = nullptr,
-                         const DominatorTree *DT = nullptr,
-                         AssumptionCache *AC = nullptr,
-                         const Instruction *CxtI = nullptr);
 
   /// Given a function and iterators over arguments, fold the result or return
   /// null.
   Value *SimplifyCall(Value *V, User::op_iterator ArgBegin,
                       User::op_iterator ArgEnd, const SimplifyQuery &Q);
-  Value *SimplifyCall(Value *V, User::op_iterator ArgBegin,
-                      User::op_iterator ArgEnd, const DataLayout &DL,
-                      const TargetLibraryInfo *TLI = nullptr,
-                      const DominatorTree *DT = nullptr,
-                      AssumptionCache *AC = nullptr,
-                      const Instruction *CxtI = nullptr);
 
   /// Given a function and set of arguments, fold the result or return null.
   Value *SimplifyCall(Value *V, ArrayRef<Value *> Args, const SimplifyQuery &Q);
-  Value *SimplifyCall(Value *V, ArrayRef<Value *> Args, const DataLayout &DL,
-                      const TargetLibraryInfo *TLI = nullptr,
-                      const DominatorTree *DT = nullptr,
-                      AssumptionCache *AC = nullptr,
-                      const Instruction *CxtI = nullptr);
 
   /// See if we can compute a simplified version of this instruction. If not,
   /// return null.
   Value *SimplifyInstruction(Instruction *I, const SimplifyQuery &Q,
                              OptimizationRemarkEmitter *ORE = nullptr);
-  Value *SimplifyInstruction(Instruction *I, const DataLayout &DL,
-                             const TargetLibraryInfo *TLI = nullptr,
-                             const DominatorTree *DT = nullptr,
-                             AssumptionCache *AC = nullptr,
-                             OptimizationRemarkEmitter *ORE = nullptr);
 
   /// Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.
   ///
@@ -411,6 +229,15 @@ namespace llvm {
                                       const TargetLibraryInfo *TLI = nullptr,
                                       const DominatorTree *DT = nullptr,
                                       AssumptionCache *AC = nullptr);
+  // These helper functions return a SimplifyQuery structure that contains as
+  // many of the optional analysis we use as are currently valid.  This is the
+  // strongly preferred way of constructing SimplifyQuery in passes.
+  const SimplifyQuery getBestSimplifyQuery(Pass &, Function &);
+  template <class T, class... TArgs>
+  const SimplifyQuery getBestSimplifyQuery(AnalysisManager<T, TArgs...> &,
+                                           Function &);
+  const SimplifyQuery getBestSimplifyQuery(LoopStandardAnalysisResults &,
+                                           const DataLayout &);
 } // end namespace llvm
 
 #endif

Modified: vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h	Tue May  2 17:16:24 2017	(r317682)
+++ vendor/llvm/dist/include/llvm/Analysis/MemoryBuiltins.h	Tue May  2 18:30:13 2017	(r317683)
@@ -235,7 +235,7 @@ class ObjectSizeOffsetEvaluator

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



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