svn commit: r319523 - in vendor/llvm/dist: include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/CodeGen include/llvm/CodeGen/PBQP include/llvm/DebugInfo/CodeView include/llvm/DebugInfo/...

Dimitry Andric dim at FreeBSD.org
Sat Jun 3 15:20:39 UTC 2017


Author: dim
Date: Sat Jun  3 15:20:36 2017
New Revision: 319523
URL: https://svnweb.freebsd.org/changeset/base/319523

Log:
  Vendor import of llvm trunk r304659:
  https://llvm.org/svn/llvm-project/llvm/trunk@304659

Added:
  vendor/llvm/dist/lib/Target/ARM/ARMScheduleA57.td
  vendor/llvm/dist/lib/Target/ARM/ARMScheduleA57WriteRes.td
  vendor/llvm/dist/test/CodeGen/AMDGPU/not-scalarize-volatile-load.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-alu.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-basic.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-ldm-wrback.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-ldm.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-stm-wrback.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-stm.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-vfma.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-vldm-wrback.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-vldm.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-vstm-wrback.ll
  vendor/llvm/dist/test/CodeGen/ARM/cortex-a57-misched-vstm.ll
  vendor/llvm/dist/test/CodeGen/Hexagon/newify-crash.ll
  vendor/llvm/dist/test/CodeGen/Mips/micromips-sizereduction/micromips-lbu16-lhu16-sb16-sh16.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/scavenging.mir
  vendor/llvm/dist/test/CodeGen/SystemZ/RAbasic-invalid-LR-update.mir
  vendor/llvm/dist/test/CodeGen/X86/scavenger.mir
  vendor/llvm/dist/test/CodeGen/X86/vector-unsigned-cmp.ll
  vendor/llvm/dist/test/DebugInfo/MIR/AArch64/
  vendor/llvm/dist/test/DebugInfo/MIR/AArch64/clobber-sp.mir
  vendor/llvm/dist/test/DebugInfo/MIR/AArch64/lit.local.cfg
  vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/inline-8bit-counters.ll
  vendor/llvm/dist/test/MC/WebAssembly/external-data.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/cost.ll
  vendor/llvm/dist/test/Transforms/CodeExtractor/cost_meta.ll
  vendor/llvm/dist/test/Transforms/LowerExpectIntrinsic/phi_merge.ll
  vendor/llvm/dist/test/Transforms/LowerExpectIntrinsic/phi_or.ll
  vendor/llvm/dist/test/Transforms/LowerExpectIntrinsic/phi_tern.ll
  vendor/llvm/dist/test/Transforms/LowerTypeTests/Inputs/use-typeid1-dead.yaml
  vendor/llvm/dist/test/Transforms/LowerTypeTests/export-dead.ll
  vendor/llvm/dist/test/Transforms/Util/PredicateInfo/condprop2.ll
  vendor/llvm/dist/test/Transforms/Util/PredicateInfo/testandor2.ll
  vendor/llvm/dist/unittests/Analysis/OrderedBasicBlockTest.cpp   (contents, props changed)
Modified:
  vendor/llvm/dist/include/llvm/ADT/SmallVector.h
  vendor/llvm/dist/include/llvm/Analysis/OrderedBasicBlock.h
  vendor/llvm/dist/include/llvm/Analysis/RegionPass.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineRegionInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h
  vendor/llvm/dist/include/llvm/CodeGen/PBQP/CostAllocator.h
  vendor/llvm/dist/include/llvm/CodeGen/PBQP/Graph.h
  vendor/llvm/dist/include/llvm/CodeGen/PBQP/Math.h
  vendor/llvm/dist/include/llvm/CodeGen/PBQP/ReductionRules.h
  vendor/llvm/dist/include/llvm/CodeGen/PBQP/Solution.h
  vendor/llvm/dist/include/llvm/CodeGen/PBQPRAConstraint.h
  vendor/llvm/dist/include/llvm/CodeGen/Passes.h
  vendor/llvm/dist/include/llvm/CodeGen/RegAllocPBQP.h
  vendor/llvm/dist/include/llvm/CodeGen/RegisterScavenging.h
  vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGInstrs.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
  vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h
  vendor/llvm/dist/include/llvm/CodeGen/StackMaps.h
  vendor/llvm/dist/include/llvm/CodeGen/TargetSchedule.h
  vendor/llvm/dist/include/llvm/CodeGen/WinEHFuncInfo.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeView.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
  vendor/llvm/dist/include/llvm/DebugInfo/MSF/MappedBlockStream.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
  vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiStream.h
  vendor/llvm/dist/include/llvm/IR/DIBuilder.h
  vendor/llvm/dist/include/llvm/IR/DebugLoc.h
  vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndex.h
  vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndexYAML.h
  vendor/llvm/dist/include/llvm/IR/Statepoint.h
  vendor/llvm/dist/include/llvm/InitializePasses.h
  vendor/llvm/dist/include/llvm/LTO/Config.h
  vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
  vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
  vendor/llvm/dist/include/llvm/TableGen/Record.h
  vendor/llvm/dist/include/llvm/Transforms/IPO/FunctionImport.h
  vendor/llvm/dist/include/llvm/Transforms/Instrumentation.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/Cloning.h
  vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp
  vendor/llvm/dist/lib/Analysis/IndirectCallPromotionAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/InlineCost.cpp
  vendor/llvm/dist/lib/Analysis/LazyValueInfo.cpp
  vendor/llvm/dist/lib/Analysis/ModuleSummaryAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/OrderedBasicBlock.cpp
  vendor/llvm/dist/lib/Analysis/RegionPass.cpp
  vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp
  vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp
  vendor/llvm/dist/lib/CodeGen/CodeGen.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalMerge.cpp
  vendor/llvm/dist/lib/CodeGen/LivePhysRegs.cpp
  vendor/llvm/dist/lib/CodeGen/LiveRegUnits.cpp
  vendor/llvm/dist/lib/CodeGen/MachineRegionInfo.cpp
  vendor/llvm/dist/lib/CodeGen/MachineVerifier.cpp
  vendor/llvm/dist/lib/CodeGen/PrologEpilogInserter.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocBasic.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocPBQP.cpp
  vendor/llvm/dist/lib/CodeGen/RegisterScavenging.cpp
  vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.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/TargetLoweringBase.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolDumper.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolSerializer.cpp
  vendor/llvm/dist/lib/DebugInfo/MSF/MappedBlockStream.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
  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/InfoStreamBuilder.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBFile.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBStringTable.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStream.cpp
  vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp
  vendor/llvm/dist/lib/IR/DIBuilder.cpp
  vendor/llvm/dist/lib/IR/DebugLoc.cpp
  vendor/llvm/dist/lib/IR/OptBisect.cpp
  vendor/llvm/dist/lib/LTO/LTO.cpp
  vendor/llvm/dist/lib/LTO/LTOBackend.cpp
  vendor/llvm/dist/lib/LTO/ThinLTOCodeGenerator.cpp
  vendor/llvm/dist/lib/MC/WasmObjectWriter.cpp
  vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp
  vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
  vendor/llvm/dist/lib/Passes/PassBuilder.cpp
  vendor/llvm/dist/lib/Support/Triple.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64PBQPRegAlloc.h
  vendor/llvm/dist/lib/Target/AArch64/AArch64SchedFalkorDetails.td
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.td
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIInsertWaits.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SMInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/VOP3Instructions.td
  vendor/llvm/dist/lib/Target/ARM/ARM.td
  vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMCallLowering.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMSchedule.td
  vendor/llvm/dist/lib/Target/ARM/ARMSubtarget.h
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Mips/MicroMipsSizeReduction.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/known_gcc_test_failures.txt
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Transforms/Coroutines/CoroSplit.cpp
  vendor/llvm/dist/lib/Transforms/Coroutines/Coroutines.cpp
  vendor/llvm/dist/lib/Transforms/IPO/FunctionAttrs.cpp
  vendor/llvm/dist/lib/Transforms/IPO/FunctionImport.cpp
  vendor/llvm/dist/lib/Transforms/IPO/LowerTypeTests.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PartialInlining.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SROA.cpp
  vendor/llvm/dist/lib/Transforms/Utils/CloneFunction.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp
  vendor/llvm/dist/runtimes/CMakeLists.txt
  vendor/llvm/dist/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir
  vendor/llvm/dist/test/CodeGen/AMDGPU/basic-branch.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/branch-condition-and.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/branch-relaxation.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/commute-compares.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/indirect-addressing-si.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/infinite-loop.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.v2i16.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.store.format.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.store.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ds.swizzle.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.image.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.kernarg.segment.ptr.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.vol.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.vol.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.waitcnt.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/multi-divergent-exit-region.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/ret_jump.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/si-lower-control-flow-unreachable-block.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/smrd-vccz-bug.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/spill-m0.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/sub.i16.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/valu-i1.ll
  vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-irtranslator.ll
  vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-unsupported.ll
  vendor/llvm/dist/test/CodeGen/ARM/global-merge-external.ll
  vendor/llvm/dist/test/CodeGen/MIR/Generic/runPass.mir
  vendor/llvm/dist/test/CodeGen/X86/and-sink.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512-cvt.ll
  vendor/llvm/dist/test/CodeGen/X86/broadcast-elm-cross-splat-vec.ll
  vendor/llvm/dist/test/CodeGen/X86/clear_upper_vector_element_bits.ll
  vendor/llvm/dist/test/CodeGen/X86/select.ll
  vendor/llvm/dist/test/CodeGen/X86/shrink-compare.ll
  vendor/llvm/dist/test/CodeGen/X86/sse3.ll
  vendor/llvm/dist/test/CodeGen/X86/stack-folding-fp-avx1.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-allocas.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-call-lowering.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-far-call.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-forward.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-gctransition-call-lowering.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-invoke.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-live-in.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-stack-usage.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-stackmap-format.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-uniqueing.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-vector-bad-spill.ll
  vendor/llvm/dist/test/CodeGen/X86/statepoint-vector.ll
  vendor/llvm/dist/test/CodeGen/X86/wide-fma-contraction.ll
  vendor/llvm/dist/test/CodeGen/X86/xor-icmp.ll
  vendor/llvm/dist/test/DebugInfo/PDB/Inputs/simple-line-info.yaml
  vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-write.test
  vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-yaml-lineinfo.test
  vendor/llvm/dist/test/ThinLTO/X86/deadstrip.ll
  vendor/llvm/dist/test/ThinLTO/X86/newpm-basic.ll
  vendor/llvm/dist/test/Transforms/Coroutines/coro-split-02.ll
  vendor/llvm/dist/test/Transforms/Inline/AArch64/switch.ll
  vendor/llvm/dist/test/Transforms/InstCombine/not.ll
  vendor/llvm/dist/test/Transforms/InstSimplify/compare.ll
  vendor/llvm/dist/test/Transforms/LowerTypeTests/Inputs/import-unsat.yaml
  vendor/llvm/dist/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml
  vendor/llvm/dist/test/Transforms/LowerTypeTests/export-nothing.ll
  vendor/llvm/dist/test/Transforms/LowerTypeTests/import-unsat.ll
  vendor/llvm/dist/test/Transforms/SROA/address-spaces.ll
  vendor/llvm/dist/test/Transforms/Util/PredicateInfo/condprop.ll
  vendor/llvm/dist/test/Transforms/Util/PredicateInfo/testandor.ll
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-nothing.ll
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-single-impl.ll
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll
  vendor/llvm/dist/test/Transforms/WholeProgramDevirt/import-indir.ll
  vendor/llvm/dist/test/tools/llvm-lto2/X86/pipeline.ll
  vendor/llvm/dist/tools/llc/llc.cpp
  vendor/llvm/dist/tools/llvm-config/llvm-config.cpp
  vendor/llvm/dist/tools/llvm-lto2/llvm-lto2.cpp
  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/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-readobj/COFFDumper.cpp
  vendor/llvm/dist/unittests/ADT/SmallVectorTest.cpp
  vendor/llvm/dist/unittests/Analysis/CMakeLists.txt
  vendor/llvm/dist/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp
  vendor/llvm/dist/unittests/Transforms/Utils/Cloning.cpp
  vendor/llvm/dist/utils/TableGen/X86FoldTablesEmitter.cpp
  vendor/llvm/dist/utils/lit/lit/util.py

Modified: vendor/llvm/dist/include/llvm/ADT/SmallVector.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/SmallVector.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/ADT/SmallVector.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -415,12 +415,20 @@ class SmallVectorImpl : public SmallVectorTemplateBase
     append(IL.begin(), IL.end());
   }
 
+  // FIXME: Consider assigning over existing elements, rather than clearing &
+  // re-initializing them - for all assign(...) variants.
+
   void assign(size_type NumElts, const T &Elt) {
     clear();
     if (this->capacity() < NumElts)
       this->grow(NumElts);
     this->setEnd(this->begin()+NumElts);
     std::uninitialized_fill(this->begin(), this->end(), Elt);
+  }
+
+  template <typename in_iter> void assign(in_iter in_start, in_iter in_end) {
+    clear();
+    append(in_start, in_end);
   }
 
   void assign(std::initializer_list<T> IL) {

Modified: vendor/llvm/dist/include/llvm/Analysis/OrderedBasicBlock.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/OrderedBasicBlock.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/Analysis/OrderedBasicBlock.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -58,6 +58,7 @@ class OrderedBasicBlock { (public)
   /// comes before \p B in \p BB. This is a simplification that considers
   /// cached instruction positions and ignores other basic blocks, being
   /// only relevant to compare relative instructions positions inside \p BB.
+  /// Returns false for A == B.
   bool dominates(const Instruction *A, const Instruction *B);
 };
 

Modified: vendor/llvm/dist/include/llvm/Analysis/RegionPass.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/RegionPass.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/Analysis/RegionPass.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -78,6 +78,11 @@ class RegionPass : public Pass { (public)
     return PMT_RegionPassManager;
   }
   //@}
+
+protected:
+  /// Optional passes call this function to check whether the pass should be
+  /// skipped. This is the case when optimization bisect is over the limit.
+  bool skipRegion(Region &R) const;
 };
 
 /// @brief The pass manager to schedule RegionPasses.

Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -636,7 +636,7 @@ class ScalarEvolution { (private)
     /// @}
 
   public:
-    BackedgeTakenInfo() : MaxAndComplete(nullptr, 0) {}
+    BackedgeTakenInfo() : MaxAndComplete(nullptr, 0), MaxOrZero(false) {}
 
     BackedgeTakenInfo(BackedgeTakenInfo &&) = default;
     BackedgeTakenInfo &operator=(BackedgeTakenInfo &&) = default;

Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineRegionInfo.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/MachineRegionInfo.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/CodeGen/MachineRegionInfo.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -10,83 +10,77 @@
 #ifndef LLVM_CODEGEN_MACHINEREGIONINFO_H
 #define LLVM_CODEGEN_MACHINEREGIONINFO_H
 
+#include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/Analysis/RegionInfo.h"
 #include "llvm/Analysis/RegionIterator.h"
+#include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineDominanceFrontier.h"
 #include "llvm/CodeGen/MachineDominators.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineLoopInfo.h"
+#include <cassert>
 
-
 namespace llvm {
 
-class MachineDominatorTree;
 struct MachinePostDominatorTree;
 class MachineRegion;
 class MachineRegionNode;
 class MachineRegionInfo;
 
-template<>
-struct RegionTraits<MachineFunction> {
-  typedef MachineFunction FuncT;
-  typedef MachineBasicBlock BlockT;
-  typedef MachineRegion RegionT;
-  typedef MachineRegionNode RegionNodeT;
-  typedef MachineRegionInfo RegionInfoT;
-  typedef MachineDominatorTree DomTreeT;
-  typedef MachineDomTreeNode DomTreeNodeT;
-  typedef MachinePostDominatorTree PostDomTreeT;
-  typedef MachineDominanceFrontier DomFrontierT;
-  typedef MachineInstr InstT;
-  typedef MachineLoop LoopT;
-  typedef MachineLoopInfo LoopInfoT;
+template <> struct RegionTraits<MachineFunction> {
+  using FuncT = MachineFunction;
+  using BlockT = MachineBasicBlock;
+  using RegionT = MachineRegion;
+  using RegionNodeT = MachineRegionNode;
+  using RegionInfoT = MachineRegionInfo;
+  using DomTreeT = MachineDominatorTree;
+  using DomTreeNodeT = MachineDomTreeNode;
+  using PostDomTreeT = MachinePostDominatorTree;
+  using DomFrontierT = MachineDominanceFrontier;
+  using InstT = MachineInstr;
+  using LoopT = MachineLoop;
+  using LoopInfoT = MachineLoopInfo;
 
   static unsigned getNumSuccessors(MachineBasicBlock *BB) {
     return BB->succ_size();
   }
 };
 
-
 class MachineRegionNode : public RegionNodeBase<RegionTraits<MachineFunction>> {
 public:
-  inline MachineRegionNode(MachineRegion *Parent,
-                           MachineBasicBlock *Entry,
+  inline MachineRegionNode(MachineRegion *Parent, MachineBasicBlock *Entry,
                            bool isSubRegion = false)
-    : RegionNodeBase<RegionTraits<MachineFunction>>(Parent, Entry, isSubRegion) {
+      : RegionNodeBase<RegionTraits<MachineFunction>>(Parent, Entry,
+                                                      isSubRegion) {}
 
-  }
-
   bool operator==(const MachineRegion &RN) const {
-    return this == reinterpret_cast<const MachineRegionNode*>(&RN);
+    return this == reinterpret_cast<const MachineRegionNode *>(&RN);
   }
 };
 
 class MachineRegion : public RegionBase<RegionTraits<MachineFunction>> {
 public:
   MachineRegion(MachineBasicBlock *Entry, MachineBasicBlock *Exit,
-                MachineRegionInfo* RI,
-                MachineDominatorTree *DT, MachineRegion *Parent = nullptr);
+                MachineRegionInfo *RI, MachineDominatorTree *DT,
+                MachineRegion *Parent = nullptr);
   ~MachineRegion();
 
   bool operator==(const MachineRegionNode &RN) const {
-    return &RN == reinterpret_cast<const MachineRegionNode*>(this);
+    return &RN == reinterpret_cast<const MachineRegionNode *>(this);
   }
 };
 
 class MachineRegionInfo : public RegionInfoBase<RegionTraits<MachineFunction>> {
 public:
   explicit MachineRegionInfo();
-
   ~MachineRegionInfo() override;
 
   // updateStatistics - Update statistic about created regions.
   void updateStatistics(MachineRegion *R) final;
 
-  void recalculate(MachineFunction &F,
-                   MachineDominatorTree *DT,
-                   MachinePostDominatorTree *PDT,
-                   MachineDominanceFrontier *DF);
+  void recalculate(MachineFunction &F, MachineDominatorTree *DT,
+                   MachinePostDominatorTree *PDT, MachineDominanceFrontier *DF);
 };
 
 class MachineRegionInfoPass : public MachineFunctionPass {
@@ -94,17 +88,13 @@ class MachineRegionInfoPass : public MachineFunctionPa
 
 public:
   static char ID;
-  explicit MachineRegionInfoPass();
 
+  explicit MachineRegionInfoPass();
   ~MachineRegionInfoPass() override;
 
-  MachineRegionInfo &getRegionInfo() {
-    return RI;
-  }
+  MachineRegionInfo &getRegionInfo() { return RI; }
 
-  const MachineRegionInfo &getRegionInfo() const {
-    return RI;
-  }
+  const MachineRegionInfo &getRegionInfo() const { return RI; }
 
   /// @name MachineFunctionPass interface
   //@{
@@ -117,66 +107,76 @@ class MachineRegionInfoPass : public MachineFunctionPa
   //@}
 };
 
-
 template <>
 template <>
-inline MachineBasicBlock* RegionNodeBase<RegionTraits<MachineFunction>>::getNodeAs<MachineBasicBlock>() const {
+inline MachineBasicBlock *
+RegionNodeBase<RegionTraits<MachineFunction>>::getNodeAs<MachineBasicBlock>()
+    const {
   assert(!isSubRegion() && "This is not a MachineBasicBlock RegionNode!");
   return getEntry();
 }
 
-template<>
-template<>
-inline MachineRegion* RegionNodeBase<RegionTraits<MachineFunction>>::getNodeAs<MachineRegion>() const {
+template <>
+template <>
+inline MachineRegion *
+RegionNodeBase<RegionTraits<MachineFunction>>::getNodeAs<MachineRegion>()
+    const {
   assert(isSubRegion() && "This is not a subregion RegionNode!");
-  auto Unconst = const_cast<RegionNodeBase<RegionTraits<MachineFunction>>*>(this);
-  return reinterpret_cast<MachineRegion*>(Unconst);
+  auto Unconst =
+      const_cast<RegionNodeBase<RegionTraits<MachineFunction>> *>(this);
+  return reinterpret_cast<MachineRegion *>(Unconst);
 }
 
-
 RegionNodeGraphTraits(MachineRegionNode, MachineBasicBlock, MachineRegion);
-RegionNodeGraphTraits(const MachineRegionNode, MachineBasicBlock, MachineRegion);
+RegionNodeGraphTraits(const MachineRegionNode, MachineBasicBlock,
+                      MachineRegion);
 
 RegionGraphTraits(MachineRegion, MachineRegionNode);
 RegionGraphTraits(const MachineRegion, const MachineRegionNode);
 
-template <> struct GraphTraits<MachineRegionInfo*>
-  : public GraphTraits<FlatIt<MachineRegionNode*> > {
-  typedef df_iterator<NodeRef, df_iterator_default_set<NodeRef>, false,
-                      GraphTraits<FlatIt<NodeRef>>>
-      nodes_iterator;
+template <>
+struct GraphTraits<MachineRegionInfo *>
+    : public GraphTraits<FlatIt<MachineRegionNode *>> {
+  using nodes_iterator = df_iterator<NodeRef, df_iterator_default_set<NodeRef>,
+                                     false, GraphTraits<FlatIt<NodeRef>>>;
 
   static NodeRef getEntryNode(MachineRegionInfo *RI) {
-    return GraphTraits<FlatIt<MachineRegion*> >::getEntryNode(RI->getTopLevelRegion());
+    return GraphTraits<FlatIt<MachineRegion *>>::getEntryNode(
+        RI->getTopLevelRegion());
   }
-  static nodes_iterator nodes_begin(MachineRegionInfo* RI) {
+
+  static nodes_iterator nodes_begin(MachineRegionInfo *RI) {
     return nodes_iterator::begin(getEntryNode(RI));
   }
+
   static nodes_iterator nodes_end(MachineRegionInfo *RI) {
     return nodes_iterator::end(getEntryNode(RI));
   }
 };
 
-template <> struct GraphTraits<MachineRegionInfoPass*>
-  : public GraphTraits<MachineRegionInfo *> {
-  typedef df_iterator<NodeRef, df_iterator_default_set<NodeRef>, false,
-                      GraphTraits<FlatIt<NodeRef>>>
-      nodes_iterator;
+template <>
+struct GraphTraits<MachineRegionInfoPass *>
+    : public GraphTraits<MachineRegionInfo *> {
+  using nodes_iterator = df_iterator<NodeRef, df_iterator_default_set<NodeRef>,
+                                     false, GraphTraits<FlatIt<NodeRef>>>;
 
   static NodeRef getEntryNode(MachineRegionInfoPass *RI) {
-    return GraphTraits<MachineRegionInfo*>::getEntryNode(&RI->getRegionInfo());
+    return GraphTraits<MachineRegionInfo *>::getEntryNode(&RI->getRegionInfo());
   }
-  static nodes_iterator nodes_begin(MachineRegionInfoPass* RI) {
-    return GraphTraits<MachineRegionInfo*>::nodes_begin(&RI->getRegionInfo());
+
+  static nodes_iterator nodes_begin(MachineRegionInfoPass *RI) {
+    return GraphTraits<MachineRegionInfo *>::nodes_begin(&RI->getRegionInfo());
   }
+
   static nodes_iterator nodes_end(MachineRegionInfoPass *RI) {
-    return GraphTraits<MachineRegionInfo*>::nodes_end(&RI->getRegionInfo());
+    return GraphTraits<MachineRegionInfo *>::nodes_end(&RI->getRegionInfo());
   }
 };
 
 extern template class RegionBase<RegionTraits<MachineFunction>>;
 extern template class RegionNodeBase<RegionTraits<MachineFunction>>;
 extern template class RegionInfoBase<RegionTraits<MachineFunction>>;
-}
 
-#endif
+} // end namespace llvm
+
+#endif // LLVM_CODEGEN_MACHINEREGIONINFO_H

Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/CodeGen/MachineRegisterInfo.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -14,11 +14,13 @@
 #ifndef LLVM_CODEGEN_MACHINEREGISTERINFO_H
 #define LLVM_CODEGEN_MACHINEREGISTERINFO_H
 
+#include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/BitVector.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/IndexedMap.h"
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/ADT/PointerUnion.h"
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/GlobalISel/RegisterBank.h"
 #include "llvm/CodeGen/LowLevelType.h"
 #include "llvm/CodeGen/MachineBasicBlock.h"
@@ -41,8 +43,8 @@ namespace llvm {
 class PSetIterator;
 
 /// Convenient type to represent either a register class or a register bank.
-typedef PointerUnion<const TargetRegisterClass *, const RegisterBank *>
-    RegClassOrRegBank;
+using RegClassOrRegBank =
+    PointerUnion<const TargetRegisterClass *, const RegisterBank *>;
 
 /// MachineRegisterInfo - Keep track of information for virtual and physical
 /// registers, including vreg register classes, use/def chains for registers,
@@ -125,7 +127,7 @@ class MachineRegisterInfo { (private)
   /// started.
   BitVector ReservedRegs;
 
-  typedef DenseMap<unsigned, LLT> VRegToTypeMap;
+  using VRegToTypeMap = DenseMap<unsigned, LLT>;
   /// Map generic virtual registers to their actual size.
   mutable std::unique_ptr<VRegToTypeMap> VRegToType;
 
@@ -266,8 +268,8 @@ class MachineRegisterInfo { (private)
 
   /// reg_iterator/reg_begin/reg_end - Walk all defs and uses of the specified
   /// register.
-  typedef defusechain_iterator<true,true,false,true,false,false>
-          reg_iterator;
+  using reg_iterator =
+      defusechain_iterator<true, true, false, true, false, false>;
   reg_iterator reg_begin(unsigned RegNo) const {
     return reg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -279,8 +281,8 @@ class MachineRegisterInfo { (private)
 
   /// reg_instr_iterator/reg_instr_begin/reg_instr_end - Walk all defs and uses
   /// of the specified register, stepping by MachineInstr.
-  typedef defusechain_instr_iterator<true,true,false,false,true,false>
-          reg_instr_iterator;
+  using reg_instr_iterator =
+      defusechain_instr_iterator<true, true, false, false, true, false>;
   reg_instr_iterator reg_instr_begin(unsigned RegNo) const {
     return reg_instr_iterator(getRegUseDefListHead(RegNo));
   }
@@ -295,8 +297,8 @@ class MachineRegisterInfo { (private)
 
   /// reg_bundle_iterator/reg_bundle_begin/reg_bundle_end - Walk all defs and uses
   /// of the specified register, stepping by bundle.
-  typedef defusechain_instr_iterator<true,true,false,false,false,true>
-          reg_bundle_iterator;
+  using reg_bundle_iterator =
+      defusechain_instr_iterator<true, true, false, false, false, true>;
   reg_bundle_iterator reg_bundle_begin(unsigned RegNo) const {
     return reg_bundle_iterator(getRegUseDefListHead(RegNo));
   }
@@ -314,8 +316,8 @@ class MachineRegisterInfo { (private)
 
   /// reg_nodbg_iterator/reg_nodbg_begin/reg_nodbg_end - Walk all defs and uses
   /// of the specified register, skipping those marked as Debug.
-  typedef defusechain_iterator<true,true,true,true,false,false>
-          reg_nodbg_iterator;
+  using reg_nodbg_iterator =
+      defusechain_iterator<true, true, true, true, false, false>;
   reg_nodbg_iterator reg_nodbg_begin(unsigned RegNo) const {
     return reg_nodbg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -331,8 +333,8 @@ class MachineRegisterInfo { (private)
   /// reg_instr_nodbg_iterator/reg_instr_nodbg_begin/reg_instr_nodbg_end - Walk
   /// all defs and uses of the specified register, stepping by MachineInstr,
   /// skipping those marked as Debug.
-  typedef defusechain_instr_iterator<true,true,true,false,true,false>
-          reg_instr_nodbg_iterator;
+  using reg_instr_nodbg_iterator =
+      defusechain_instr_iterator<true, true, true, false, true, false>;
   reg_instr_nodbg_iterator reg_instr_nodbg_begin(unsigned RegNo) const {
     return reg_instr_nodbg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -348,8 +350,8 @@ class MachineRegisterInfo { (private)
   /// reg_bundle_nodbg_iterator/reg_bundle_nodbg_begin/reg_bundle_nodbg_end - Walk
   /// all defs and uses of the specified register, stepping by bundle,
   /// skipping those marked as Debug.
-  typedef defusechain_instr_iterator<true,true,true,false,false,true>
-          reg_bundle_nodbg_iterator;
+  using reg_bundle_nodbg_iterator =
+      defusechain_instr_iterator<true, true, true, false, false, true>;
   reg_bundle_nodbg_iterator reg_bundle_nodbg_begin(unsigned RegNo) const {
     return reg_bundle_nodbg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -369,8 +371,8 @@ class MachineRegisterInfo { (private)
   }
 
   /// def_iterator/def_begin/def_end - Walk all defs of the specified register.
-  typedef defusechain_iterator<false,true,false,true,false,false>
-          def_iterator;
+  using def_iterator =
+      defusechain_iterator<false, true, false, true, false, false>;
   def_iterator def_begin(unsigned RegNo) const {
     return def_iterator(getRegUseDefListHead(RegNo));
   }
@@ -382,8 +384,8 @@ class MachineRegisterInfo { (private)
 
   /// def_instr_iterator/def_instr_begin/def_instr_end - Walk all defs of the
   /// specified register, stepping by MachineInst.
-  typedef defusechain_instr_iterator<false,true,false,false,true,false>
-          def_instr_iterator;
+  using def_instr_iterator =
+      defusechain_instr_iterator<false, true, false, false, true, false>;
   def_instr_iterator def_instr_begin(unsigned RegNo) const {
     return def_instr_iterator(getRegUseDefListHead(RegNo));
   }
@@ -398,8 +400,8 @@ class MachineRegisterInfo { (private)
 
   /// def_bundle_iterator/def_bundle_begin/def_bundle_end - Walk all defs of the
   /// specified register, stepping by bundle.
-  typedef defusechain_instr_iterator<false,true,false,false,false,true>
-          def_bundle_iterator;
+  using def_bundle_iterator =
+      defusechain_instr_iterator<false, true, false, false, false, true>;
   def_bundle_iterator def_bundle_begin(unsigned RegNo) const {
     return def_bundle_iterator(getRegUseDefListHead(RegNo));
   }
@@ -425,8 +427,8 @@ class MachineRegisterInfo { (private)
   }
 
   /// use_iterator/use_begin/use_end - Walk all uses of the specified register.
-  typedef defusechain_iterator<true,false,false,true,false,false>
-          use_iterator;
+  using use_iterator =
+      defusechain_iterator<true, false, false, true, false, false>;
   use_iterator use_begin(unsigned RegNo) const {
     return use_iterator(getRegUseDefListHead(RegNo));
   }
@@ -438,8 +440,8 @@ class MachineRegisterInfo { (private)
 
   /// use_instr_iterator/use_instr_begin/use_instr_end - Walk all uses of the
   /// specified register, stepping by MachineInstr.
-  typedef defusechain_instr_iterator<true,false,false,false,true,false>
-          use_instr_iterator;
+  using use_instr_iterator =
+      defusechain_instr_iterator<true, false, false, false, true, false>;
   use_instr_iterator use_instr_begin(unsigned RegNo) const {
     return use_instr_iterator(getRegUseDefListHead(RegNo));
   }
@@ -454,8 +456,8 @@ class MachineRegisterInfo { (private)
 
   /// use_bundle_iterator/use_bundle_begin/use_bundle_end - Walk all uses of the
   /// specified register, stepping by bundle.
-  typedef defusechain_instr_iterator<true,false,false,false,false,true>
-          use_bundle_iterator;
+  using use_bundle_iterator =
+      defusechain_instr_iterator<true, false, false, false, false, true>;
   use_bundle_iterator use_bundle_begin(unsigned RegNo) const {
     return use_bundle_iterator(getRegUseDefListHead(RegNo));
   }
@@ -482,8 +484,8 @@ class MachineRegisterInfo { (private)
 
   /// use_nodbg_iterator/use_nodbg_begin/use_nodbg_end - Walk all uses of the
   /// specified register, skipping those marked as Debug.
-  typedef defusechain_iterator<true,false,true,true,false,false>
-          use_nodbg_iterator;
+  using use_nodbg_iterator =
+      defusechain_iterator<true, false, true, true, false, false>;
   use_nodbg_iterator use_nodbg_begin(unsigned RegNo) const {
     return use_nodbg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -499,8 +501,8 @@ class MachineRegisterInfo { (private)
   /// use_instr_nodbg_iterator/use_instr_nodbg_begin/use_instr_nodbg_end - Walk
   /// all uses of the specified register, stepping by MachineInstr, skipping
   /// those marked as Debug.
-  typedef defusechain_instr_iterator<true,false,true,false,true,false>
-          use_instr_nodbg_iterator;
+  using use_instr_nodbg_iterator =
+      defusechain_instr_iterator<true, false, true, false, true, false>;
   use_instr_nodbg_iterator use_instr_nodbg_begin(unsigned RegNo) const {
     return use_instr_nodbg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -516,8 +518,8 @@ class MachineRegisterInfo { (private)
   /// use_bundle_nodbg_iterator/use_bundle_nodbg_begin/use_bundle_nodbg_end - Walk
   /// all uses of the specified register, stepping by bundle, skipping
   /// those marked as Debug.
-  typedef defusechain_instr_iterator<true,false,true,false,false,true>
-          use_bundle_nodbg_iterator;
+  using use_bundle_nodbg_iterator =
+      defusechain_instr_iterator<true, false, true, false, false, true>;
   use_bundle_nodbg_iterator use_bundle_nodbg_begin(unsigned RegNo) const {
     return use_bundle_nodbg_iterator(getRegUseDefListHead(RegNo));
   }
@@ -593,7 +595,6 @@ class MachineRegisterInfo { (private)
   /// Return the register class of the specified virtual register.
   /// This shouldn't be used directly unless \p Reg has a register class.
   /// \see getRegClassOrNull when this might happen.
-  ///
   const TargetRegisterClass *getRegClass(unsigned Reg) const {
     assert(VRegInfo[Reg].first.is<const TargetRegisterClass *>() &&
            "Register class not set, wrong accessor");
@@ -620,7 +621,6 @@ class MachineRegisterInfo { (private)
   /// a register bank or has been assigned a register class.
   /// \note It is possible to get the register bank from the register class via
   /// RegisterBankInfo::getRegBankFromRegClass.
-  ///
   const RegisterBank *getRegBankOrNull(unsigned Reg) const {
     const RegClassOrRegBank &Val = VRegInfo[Reg].first;
     return Val.dyn_cast<const RegisterBank *>();
@@ -629,17 +629,14 @@ class MachineRegisterInfo { (private)
   /// Return the register bank or register class of \p Reg.
   /// \note Before the register bank gets assigned (i.e., before the
   /// RegBankSelect pass) \p Reg may not have either.
-  ///
   const RegClassOrRegBank &getRegClassOrRegBank(unsigned Reg) const {
     return VRegInfo[Reg].first;
   }
 
   /// setRegClass - Set the register class of the specified virtual register.
-  ///
   void setRegClass(unsigned Reg, const TargetRegisterClass *RC);
 
   /// Set the register bank to \p RegBank for \p Reg.
-  ///
   void setRegBank(unsigned Reg, const RegisterBank &RegBank);
 
   void setRegClassOrRegBank(unsigned Reg,
@@ -653,7 +650,6 @@ class MachineRegisterInfo { (private)
   /// new register class, or NULL if no such class exists.
   /// This should only be used when the constraint is known to be trivial, like
   /// GR32 -> GR32_NOSP. Beware of increasing register pressure.
-  ///
   const TargetRegisterClass *constrainRegClass(unsigned Reg,
                                                const TargetRegisterClass *RC,
                                                unsigned MinNumRegs = 0);
@@ -665,12 +661,10 @@ class MachineRegisterInfo { (private)
   /// This method can be used after constraints have been removed from a
   /// virtual register, for example after removing instructions or splitting
   /// the live range.
-  ///
   bool recomputeRegClass(unsigned Reg);
 
   /// createVirtualRegister - Create and return a new virtual register in the
   /// function with the specified register class.
-  ///
   unsigned createVirtualRegister(const TargetRegisterClass *RegClass);
 
   /// Accessor for VRegToType. This accessor should only be used
@@ -704,7 +698,6 @@ class MachineRegisterInfo { (private)
   unsigned createIncompleteVirtualRegister();
 
   /// getNumVirtRegs - Return the number of virtual registers created.
-  ///
   unsigned getNumVirtRegs() const { return VRegInfo.size(); }
 
   /// clearVirtRegs - Remove all virtual registers (after physreg assignment).
@@ -810,7 +803,6 @@ class MachineRegisterInfo { (private)
   ///
   /// Reserved registers may belong to an allocatable register class, but the
   /// target has explicitly requested that they are not used.
-  ///
   bool isReserved(unsigned PhysReg) const {
     return getReservedRegs().test(PhysReg);
   }
@@ -838,8 +830,8 @@ class MachineRegisterInfo { (private)
 
   // Iteration support for the live-ins set.  It's kept in sorted order
   // by register number.
-  typedef std::vector<std::pair<unsigned,unsigned>>::const_iterator
-  livein_iterator;
+  using livein_iterator =
+      std::vector<std::pair<unsigned,unsigned>>::const_iterator;
   livein_iterator livein_begin() const { return LiveIns.begin(); }
   livein_iterator livein_end()   const { return LiveIns.end(); }
   bool            livein_empty() const { return LiveIns.empty(); }
@@ -910,10 +902,10 @@ class MachineRegisterInfo { (private)
     }
 
   public:
-    typedef std::iterator<std::forward_iterator_tag,
-                          MachineInstr, ptrdiff_t>::reference reference;
-    typedef std::iterator<std::forward_iterator_tag,
-                          MachineInstr, ptrdiff_t>::pointer pointer;
+    using reference = std::iterator<std::forward_iterator_tag,
+                                    MachineInstr, ptrdiff_t>::reference;
+    using pointer = std::iterator<std::forward_iterator_tag,
+                                  MachineInstr, ptrdiff_t>::pointer;
 
     defusechain_iterator() = default;
 
@@ -1016,10 +1008,10 @@ class MachineRegisterInfo { (private)
     }
 
   public:
-    typedef std::iterator<std::forward_iterator_tag,
-                          MachineInstr, ptrdiff_t>::reference reference;
-    typedef std::iterator<std::forward_iterator_tag,
-                          MachineInstr, ptrdiff_t>::pointer pointer;
+    using reference = std::iterator<std::forward_iterator_tag,
+                                    MachineInstr, ptrdiff_t>::reference;
+    using pointer = std::iterator<std::forward_iterator_tag,
+                                  MachineInstr, ptrdiff_t>::pointer;
 
     defusechain_instr_iterator() = default;
 

Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/CodeGen/MachineScheduler.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -104,10 +104,15 @@ extern cl::opt<bool> ForceBottomUp;
 
 class LiveIntervals;
 class MachineDominatorTree;
+class MachineFunction;
+class MachineInstr;
 class MachineLoopInfo;
 class RegisterClassInfo;
 class SchedDFSResult;
 class ScheduleHazardRecognizer;
+class TargetInstrInfo;
+class TargetPassConfig;
+class TargetRegisterInfo;
 
 /// MachineSchedContext provides enough context from the MachineScheduler pass
 /// for the target to instantiate a scheduler.
@@ -129,10 +134,10 @@ struct MachineSchedContext {
 /// schedulers.
 class MachineSchedRegistry : public MachinePassRegistryNode {
 public:
-  typedef ScheduleDAGInstrs *(*ScheduleDAGCtor)(MachineSchedContext *);
+  using ScheduleDAGCtor = ScheduleDAGInstrs *(*)(MachineSchedContext *);
 
   // RegisterPassParser requires a (misnamed) FunctionPassCtor type.
-  typedef ScheduleDAGCtor FunctionPassCtor;
+  using FunctionPassCtor = ScheduleDAGCtor;
 
   static MachinePassRegistry Registry;
 
@@ -527,7 +532,7 @@ class ReadyQueue { (public)
 
   unsigned size() const { return Queue.size(); }
 
-  typedef std::vector<SUnit*>::iterator iterator;
+  using iterator = std::vector<SUnit*>::iterator;
 
   iterator begin() { return Queue.begin(); }
 

Modified: vendor/llvm/dist/include/llvm/CodeGen/PBQP/CostAllocator.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/PBQP/CostAllocator.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/CodeGen/PBQP/CostAllocator.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -1,4 +1,4 @@
-//===---------- CostAllocator.h - PBQP Cost Allocator -----------*- C++ -*-===//
+//===- CostAllocator.h - PBQP Cost Allocator --------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -19,26 +19,28 @@
 #define LLVM_CODEGEN_PBQP_COSTALLOCATOR_H
 
 #include "llvm/ADT/DenseSet.h"
+#include <algorithm>
+#include <cstdint>
 #include <memory>
-#include <type_traits>
 
 namespace llvm {
 namespace PBQP {
 
-template <typename ValueT>
-class ValuePool {
+template <typename ValueT> class ValuePool {
 public:
-  typedef std::shared_ptr<const ValueT> PoolRef;
+  using PoolRef = std::shared_ptr<const ValueT>;
 
 private:
-
   class PoolEntry : public std::enable_shared_from_this<PoolEntry> {
   public:
     template <typename ValueKeyT>
     PoolEntry(ValuePool &Pool, ValueKeyT Value)
         : Pool(Pool), Value(std::move(Value)) {}
+
     ~PoolEntry() { Pool.removeEntry(this); }
-    const ValueT& getValue() const { return Value; }
+
+    const ValueT &getValue() const { return Value; }
+
   private:
     ValuePool &Pool;
     ValueT Value;
@@ -46,10 +48,10 @@ class ValuePool { (private)
 
   class PoolEntryDSInfo {
   public:
-    static inline PoolEntry* getEmptyKey() { return nullptr; }
+    static inline PoolEntry *getEmptyKey() { return nullptr; }
 
-    static inline PoolEntry* getTombstoneKey() {
-      return reinterpret_cast<PoolEntry*>(static_cast<uintptr_t>(1));
+    static inline PoolEntry *getTombstoneKey() {
+      return reinterpret_cast<PoolEntry *>(static_cast<uintptr_t>(1));
     }
 
     template <typename ValueKeyT>
@@ -66,8 +68,7 @@ class ValuePool { (private)
     }
 
     template <typename ValueKeyT1, typename ValueKeyT2>
-    static
-    bool isEqual(const ValueKeyT1 &C1, const ValueKeyT2 &C2) {
+    static bool isEqual(const ValueKeyT1 &C1, const ValueKeyT2 &C2) {
       return C1 == C2;
     }
 
@@ -83,10 +84,9 @@ class ValuePool { (private)
         return P1 == P2;
       return isEqual(P1->getValue(), P2);
     }
-
   };
 
-  typedef DenseSet<PoolEntry*, PoolEntryDSInfo> EntrySetT;
+  using EntrySetT = DenseSet<PoolEntry *, PoolEntryDSInfo>;
 
   EntrySetT EntrySet;
 
@@ -105,28 +105,31 @@ class ValuePool { (private)
   }
 };
 
-template <typename VectorT, typename MatrixT>
-class PoolCostAllocator {
+template <typename VectorT, typename MatrixT> class PoolCostAllocator {
 private:
-  typedef ValuePool<VectorT> VectorCostPool;
-  typedef ValuePool<MatrixT> MatrixCostPool;
+  using VectorCostPool = ValuePool<VectorT>;
+  using MatrixCostPool = ValuePool<MatrixT>;
+
 public:
-  typedef VectorT Vector;
-  typedef MatrixT Matrix;
-  typedef typename VectorCostPool::PoolRef VectorPtr;
-  typedef typename MatrixCostPool::PoolRef MatrixPtr;
+  using Vector = VectorT;
+  using Matrix = MatrixT;
+  using VectorPtr = typename VectorCostPool::PoolRef;
+  using MatrixPtr = typename MatrixCostPool::PoolRef;
 
-  template <typename VectorKeyT>
-  VectorPtr getVector(VectorKeyT v) { return VectorPool.getValue(std::move(v)); }
+  template <typename VectorKeyT> VectorPtr getVector(VectorKeyT v) {
+    return VectorPool.getValue(std::move(v));
+  }
 
-  template <typename MatrixKeyT>
-  MatrixPtr getMatrix(MatrixKeyT m) { return MatrixPool.getValue(std::move(m)); }
+  template <typename MatrixKeyT> MatrixPtr getMatrix(MatrixKeyT m) {
+    return MatrixPool.getValue(std::move(m));
+  }
+
 private:
   VectorCostPool VectorPool;
   MatrixCostPool MatrixPool;
 };
 
-} // namespace PBQP
-} // namespace llvm
+} // end namespace PBQP
+} // end namespace llvm
 
-#endif
+#endif // LLVM_CODEGEN_PBQP_COSTALLOCATOR_H

Modified: vendor/llvm/dist/include/llvm/CodeGen/PBQP/Graph.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/PBQP/Graph.h	Sat Jun  3 14:45:46 2017	(r319522)
+++ vendor/llvm/dist/include/llvm/CodeGen/PBQP/Graph.h	Sat Jun  3 15:20:36 2017	(r319523)
@@ -1,4 +1,4 @@
-//===-------------------- Graph.h - PBQP Graph ------------------*- C++ -*-===//
+//===- Graph.h - PBQP Graph -------------------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -11,16 +11,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-
 #ifndef LLVM_CODEGEN_PBQP_GRAPH_H
 #define LLVM_CODEGEN_PBQP_GRAPH_H
 
 #include "llvm/ADT/STLExtras.h"
-#include "llvm/Support/Debug.h"
 #include <algorithm>
 #include <cassert>
+#include <iterator>
 #include <limits>
-#include <utility>
 #include <vector>
 
 namespace llvm {
@@ -28,8 +26,8 @@ namespace PBQP {
 
   class GraphBase {
   public:
-    typedef unsigned NodeId;
-    typedef unsigned EdgeId;
+    using NodeId = unsigned;
+    using EdgeId = unsigned;
 
     /// @brief Returns a value representing an invalid (non-existent) node.
     static NodeId invalidNodeId() {
@@ -48,32 +46,32 @@ namespace PBQP {
   template <typename SolverT>
   class Graph : public GraphBase {
   private:
-    typedef typename SolverT::CostAllocator CostAllocator;
+    using CostAllocator = typename SolverT::CostAllocator;
+
   public:
-    typedef typename SolverT::RawVector RawVector;
-    typedef typename SolverT::RawMatrix RawMatrix;
-    typedef typename SolverT::Vector Vector;
-    typedef typename SolverT::Matrix Matrix;
-    typedef typename CostAllocator::VectorPtr VectorPtr;
-    typedef typename CostAllocator::MatrixPtr MatrixPtr;
-    typedef typename SolverT::NodeMetadata NodeMetadata;
-    typedef typename SolverT::EdgeMetadata EdgeMetadata;
-    typedef typename SolverT::GraphMetadata GraphMetadata;
+    using RawVector = typename SolverT::RawVector;
+    using RawMatrix = typename SolverT::RawMatrix;
+    using Vector = typename SolverT::Vector;
+    using Matrix = typename SolverT::Matrix;
+    using VectorPtr = typename CostAllocator::VectorPtr;
+    using MatrixPtr = typename CostAllocator::MatrixPtr;
+    using NodeMetadata = typename SolverT::NodeMetadata;
+    using EdgeMetadata = typename SolverT::EdgeMetadata;
+    using GraphMetadata = typename SolverT::GraphMetadata;
 
   private:
-
     class NodeEntry {
     public:
-      typedef std::vector<EdgeId> AdjEdgeList;
-      typedef AdjEdgeList::size_type AdjEdgeIdx;
-      typedef AdjEdgeList::const_iterator AdjEdgeItr;
+      using AdjEdgeList = std::vector<EdgeId>;
+      using AdjEdgeIdx = AdjEdgeList::size_type;
+      using AdjEdgeItr = AdjEdgeList::const_iterator;
 
+      NodeEntry(VectorPtr Costs) : Costs(std::move(Costs)) {}
+
       static AdjEdgeIdx getInvalidAdjEdgeIdx() {
         return std::numeric_limits<AdjEdgeIdx>::max();
       }
 
-      NodeEntry(VectorPtr Costs) : Costs(std::move(Costs)) {}
-
       AdjEdgeIdx addAdjEdgeId(EdgeId EId) {
         AdjEdgeIdx Idx = AdjEdgeIds.size();
         AdjEdgeIds.push_back(EId);
@@ -96,6 +94,7 @@ namespace PBQP {
 
       VectorPtr Costs;
       NodeMetadata Metadata;
+
     private:
       AdjEdgeList AdjEdgeIds;
     };
@@ -150,8 +149,10 @@ namespace PBQP {
 
       NodeId getN1Id() const { return NIds[0]; }
       NodeId getN2Id() const { return NIds[1]; }
+
       MatrixPtr Costs;
       EdgeMetadata Metadata;
+
     private:
       NodeId NIds[2];
       typename NodeEntry::AdjEdgeIdx ThisEdgeAdjIdxs[2];
@@ -161,18 +162,20 @@ namespace PBQP {
 
     GraphMetadata Metadata;
     CostAllocator CostAlloc;
-    SolverT *Solver;
+    SolverT *Solver = nullptr;
 
-    typedef std::vector<NodeEntry> NodeVector;
-    typedef std::vector<NodeId> FreeNodeVector;
+    using NodeVector = std::vector<NodeEntry>;
+    using FreeNodeVector = std::vector<NodeId>;
     NodeVector Nodes;
     FreeNodeVector FreeNodeIds;
 
-    typedef std::vector<EdgeEntry> EdgeVector;
-    typedef std::vector<EdgeId> FreeEdgeVector;
+    using EdgeVector = std::vector<EdgeEntry>;
+    using FreeEdgeVector = std::vector<EdgeId>;
     EdgeVector Edges;
     FreeEdgeVector FreeEdgeIds;
 
+    Graph(const Graph &Other) {}
+
     // ----- INTERNAL METHODS -----
 
     NodeEntry &getNode(NodeId NId) {
@@ -220,20 +223,18 @@ namespace PBQP {
       return EId;
     }
 
-    Graph(const Graph &Other) {}
     void operator=(const Graph &Other) {}
 
   public:
+    using AdjEdgeItr = typename NodeEntry::AdjEdgeItr;
 
-    typedef typename NodeEntry::AdjEdgeItr AdjEdgeItr;
-
     class NodeItr {
     public:
-      typedef std::forward_iterator_tag iterator_category;
-      typedef NodeId value_type;
-      typedef int difference_type;
-      typedef NodeId* pointer;
-      typedef NodeId& reference;
+      using iterator_category = std::forward_iterator_tag;
+      using value_type = NodeId;
+      using difference_type = int;
+      using pointer = NodeId *;
+      using reference = NodeId &;
 
       NodeItr(NodeId CurNId, const Graph &G)
         : CurNId(CurNId), EndNId(G.Nodes.size()), FreeNodeIds(G.FreeNodeIds) {
@@ -283,53 +284,65 @@ namespace PBQP {
 
     class NodeIdSet {
     public:
-      NodeIdSet(const Graph &G) : G(G) { }
+      NodeIdSet(const Graph &G) : G(G) {}
+
       NodeItr begin() const { return NodeItr(0, G); }
       NodeItr end() const { return NodeItr(G.Nodes.size(), G); }
+
       bool empty() const { return G.Nodes.empty(); }
+
       typename NodeVector::size_type size() const {
         return G.Nodes.size() - G.FreeNodeIds.size();
       }
+
     private:
       const Graph& G;
     };
 
     class EdgeIdSet {
     public:
-      EdgeIdSet(const Graph &G) : G(G) { }
+      EdgeIdSet(const Graph &G) : G(G) {}
+
       EdgeItr begin() const { return EdgeItr(0, G); }
       EdgeItr end() const { return EdgeItr(G.Edges.size(), G); }
+
       bool empty() const { return G.Edges.empty(); }
+
       typename NodeVector::size_type size() const {
         return G.Edges.size() - G.FreeEdgeIds.size();
       }
+
     private:
       const Graph& G;
     };
 
     class AdjEdgeIdSet {
     public:
-      AdjEdgeIdSet(const NodeEntry &NE) : NE(NE) { }
+      AdjEdgeIdSet(const NodeEntry &NE) : NE(NE) {}
+
       typename NodeEntry::AdjEdgeItr begin() const {
         return NE.getAdjEdgeIds().begin();
       }
+
       typename NodeEntry::AdjEdgeItr end() const {
         return NE.getAdjEdgeIds().end();
       }
+
       bool empty() const { return NE.getAdjEdgeIds().empty(); }
+
       typename NodeEntry::AdjEdgeList::size_type size() const {
         return NE.getAdjEdgeIds().size();
       }
+
     private:
       const NodeEntry &NE;
     };
 
     /// @brief Construct an empty PBQP graph.
-    Graph() : Solver(nullptr) {}
+    Graph() = default;
 
     /// @brief Construct an empty PBQP graph with the given graph metadata.
-    Graph(GraphMetadata Metadata)
-        : Metadata(std::move(Metadata)), Solver(nullptr) {}
+    Graph(GraphMetadata Metadata) : Metadata(std::move(Metadata)) {}

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


More information about the svn-src-all mailing list