Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jan 2017 15:37:51 +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: r312173 - in vendor/llvm/dist: . cmake/modules docs include/llvm/ADT include/llvm/Analysis include/llvm/CodeGen include/llvm/CodeGen/GlobalISel include/llvm/DebugInfo/CodeView include/l...
Message-ID:  <201701141537.v0EFbp4n026586@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sat Jan 14 15:37:50 2017
New Revision: 312173
URL: https://svnweb.freebsd.org/changeset/base/312173

Log:
  Vendor import of llvm release_40 branch r292009:
  https://llvm.org/svn/llvm-project/llvm/branches/release_40@292009

Added:
  vendor/llvm/dist/cmake/modules/CheckLinkerFlag.cmake
  vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabaseVisitor.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumperBase.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/Object/Decompressor.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/Transforms/Scalar/IVUsersPrinter.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopPassManager.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/XRay/
  vendor/llvm/dist/include/llvm/XRay/Trace.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/XRay/XRayRecord.h   (contents, props changed)
  vendor/llvm/dist/include/llvm/XRay/YAMLXRayRecord.h   (contents, props changed)
  vendor/llvm/dist/lib/Analysis/LoopAnalysisManager.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeDumper.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabase.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDatabaseVisitor.cpp   (contents, props changed)
  vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Object/Decompressor.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Transforms/Scalar/IVUsersPrinter.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp   (contents, props changed)
  vendor/llvm/dist/lib/Transforms/Scalar/LoopPassManager.cpp   (contents, props changed)
  vendor/llvm/dist/lib/XRay/
  vendor/llvm/dist/lib/XRay/CMakeLists.txt   (contents, props changed)
  vendor/llvm/dist/lib/XRay/Trace.cpp   (contents, props changed)
  vendor/llvm/dist/test/Analysis/CostModel/X86/slm-arith-costs.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/constant-fold-imm-immreg.mir
  vendor/llvm/dist/test/CodeGen/AMDGPU/fadd-fma-fmul-combine.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fneg-combines.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp32.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp64.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/select-fabs-fneg-extract-legacy.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/select-fabs-fneg-extract.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/select-opt.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/shrink-vop3-carry-out.mir
  vendor/llvm/dist/test/CodeGen/Mips/msa/immediates-bad.ll
  vendor/llvm/dist/test/CodeGen/Mips/msa/immediates.ll
  vendor/llvm/dist/test/CodeGen/Mips/msa/msa-nooddspreg.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/change-no-infs.ll
  vendor/llvm/dist/test/CodeGen/X86/bypass-slow-division-32.ll
  vendor/llvm/dist/test/CodeGen/X86/bypass-slow-division-64.ll
  vendor/llvm/dist/test/CodeGen/X86/bypass-slow-division-tune.ll
  vendor/llvm/dist/test/CodeGen/X86/change-unsafe-fp-math.ll
  vendor/llvm/dist/test/CodeGen/X86/peephole.mir
  vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-avx512.ll
  vendor/llvm/dist/test/DebugInfo/Inputs/implicit-const-test.o   (contents, props changed)
  vendor/llvm/dist/test/DebugInfo/dwarfdump-implicit-const.test
  vendor/llvm/dist/test/FileCheck/match-full-lines.txt   (contents, props changed)
  vendor/llvm/dist/test/ObjectYAML/MachO/DWARF-debug_line.yaml
  vendor/llvm/dist/test/Transforms/LICM/opt-remarks-conditional-load.ll
  vendor/llvm/dist/test/Transforms/LICM/opt-remarks-intervening-store.ll
  vendor/llvm/dist/test/Transforms/LICM/opt-remarks.ll
  vendor/llvm/dist/test/Transforms/LoopVectorize/X86/mul_slm_16bit.ll
  vendor/llvm/dist/test/Transforms/LoopVectorize/pr31190.ll
  vendor/llvm/dist/test/Transforms/NewGVN/pr31594.ll
  vendor/llvm/dist/test/Transforms/PGOProfile/Inputs/multiple_hash_profile.proftext
  vendor/llvm/dist/test/Transforms/PGOProfile/multiple_hash_profile.ll
  vendor/llvm/dist/test/Transforms/SLPVectorizer/X86/pr31599.ll
  vendor/llvm/dist/test/tools/llvm-config/booleans.test
  vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/elf64-objcopied-instrmap.bin   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/elf64-sample-o2.bin   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/naive-log-simple.xray   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/simple-instrmap.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/Inputs/simple-xray-instrmap.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/account-deduce-tail-call.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/account-keep-going.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/account-simple-case.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/account-simple-sorting.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/bad-instrmap-sizes.txt   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/convert-roundtrip.yaml
  vendor/llvm/dist/test/tools/llvm-xray/X86/convert-to-yaml.txt   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/convert-with-debug-syms.txt   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/convert-with-standalone-instrmap.txt   (contents, props changed)
  vendor/llvm/dist/test/tools/llvm-xray/X86/convert-with-yaml-instrmap.txt   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyBuiltinDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyBuiltinDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassDefinitionDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyClassDefinitionDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyCompilandDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyCompilandDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyEnumDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyEnumDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyExternalSymbolDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyExternalSymbolDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyFunctionDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyFunctionDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypeDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypeDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypedefDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyTypedefDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyVariableDumper.cpp   (contents, props changed)
  vendor/llvm/dist/tools/llvm-pdbdump/PrettyVariableDumper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/func-id-helper.cc   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/func-id-helper.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/xray-account.cc   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/xray-account.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/xray-converter.cc   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/xray-converter.h   (contents, props changed)
  vendor/llvm/dist/tools/llvm-xray/xray-record-yaml.h   (contents, props changed)
  vendor/llvm/dist/unittests/Support/TarWriterTest.cpp   (contents, props changed)
  vendor/llvm/dist/unittests/Transforms/Scalar/
  vendor/llvm/dist/unittests/Transforms/Scalar/CMakeLists.txt   (contents, props changed)
  vendor/llvm/dist/unittests/Transforms/Scalar/LoopPassManagerTest.cpp   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/
  vendor/llvm/dist/utils/unittest/googlemock/LICENSE.txt   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/README.LLVM
  vendor/llvm/dist/utils/unittest/googlemock/include/
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-actions.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-cardinalities.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-generated-actions.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-generated-function-mockers.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-generated-matchers.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-generated-nice-strict.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-matchers.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-more-actions.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-more-matchers.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock-spec-builders.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/gmock.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/custom/
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/custom/gmock-matchers.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/custom/gmock-port.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/gmock-internal-utils.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/include/gmock/internal/gmock-port.h   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/src/
  vendor/llvm/dist/utils/unittest/googlemock/src/gmock-all.cc   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/src/gmock-cardinalities.cc   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/src/gmock-internal-utils.cc   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/src/gmock-matchers.cc   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/src/gmock-spec-builders.cc   (contents, props changed)
  vendor/llvm/dist/utils/unittest/googlemock/src/gmock.cc   (contents, props changed)
Deleted:
  vendor/llvm/dist/include/llvm/Analysis/LoopPassManager.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDumper.h
  vendor/llvm/dist/lib/Analysis/LoopPassManager.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumper.cpp
  vendor/llvm/dist/test/CodeGen/AMDGPU/fp16_to_fp.ll
  vendor/llvm/dist/test/CodeGen/X86/atom-bypass-slow-division-64.ll
  vendor/llvm/dist/test/CodeGen/X86/atom-bypass-slow-division.ll
  vendor/llvm/dist/test/CodeGen/X86/slow-div.ll
  vendor/llvm/dist/test/FileCheck/strict-whitespace-match-full-lines.txt
  vendor/llvm/dist/test/tools/llvm-xray/X86/bad-instrmap-sizes.bin
  vendor/llvm/dist/tools/llvm-pdbdump/BuiltinDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/BuiltinDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/ClassDefinitionDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/ClassDefinitionDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/CompilandDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/CompilandDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/EnumDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/EnumDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/ExternalSymbolDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/ExternalSymbolDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/FunctionDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/FunctionDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/TypeDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/TypeDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/TypedefDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/TypedefDumper.h
  vendor/llvm/dist/tools/llvm-pdbdump/VariableDumper.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/VariableDumper.h
  vendor/llvm/dist/unittests/Analysis/LoopPassManagerTest.cpp
Modified:
  vendor/llvm/dist/CMakeLists.txt
  vendor/llvm/dist/LICENSE.TXT
  vendor/llvm/dist/cmake/modules/AddLLVM.cmake
  vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
  vendor/llvm/dist/docs/LangRef.rst
  vendor/llvm/dist/docs/ReleaseNotes.rst
  vendor/llvm/dist/include/llvm/ADT/PointerSumType.h
  vendor/llvm/dist/include/llvm/ADT/iterator.h
  vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h
  vendor/llvm/dist/include/llvm/Analysis/IVUsers.h
  vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h
  vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h
  vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h
  vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.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/CodeGen/BasicTTIImpl.h
  vendor/llvm/dist/include/llvm/CodeGen/DIE.h
  vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
  vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h
  vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
  vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
  vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
  vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h
  vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
  vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDie.h
  vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
  vendor/llvm/dist/include/llvm/DebugInfo/MSF/StreamArray.h
  vendor/llvm/dist/include/llvm/IR/DIBuilder.h
  vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h
  vendor/llvm/dist/include/llvm/IR/GlobalObject.h
  vendor/llvm/dist/include/llvm/IR/Intrinsics.td
  vendor/llvm/dist/include/llvm/IR/IntrinsicsAArch64.td
  vendor/llvm/dist/include/llvm/IR/IntrinsicsARM.td
  vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndex.h
  vendor/llvm/dist/include/llvm/IR/ModuleSummaryIndexYAML.h
  vendor/llvm/dist/include/llvm/ObjectYAML/DWARFYAML.h
  vendor/llvm/dist/include/llvm/ObjectYAML/MachOYAML.h
  vendor/llvm/dist/include/llvm/Passes/PassBuilder.h
  vendor/llvm/dist/include/llvm/ProfileData/InstrProf.h
  vendor/llvm/dist/include/llvm/Support/CommandLine.h
  vendor/llvm/dist/include/llvm/Support/Dwarf.h
  vendor/llvm/dist/include/llvm/Support/FileOutputBuffer.h
  vendor/llvm/dist/include/llvm/Support/GenericDomTree.h
  vendor/llvm/dist/include/llvm/Target/TargetLowering.h
  vendor/llvm/dist/include/llvm/Target/TargetMachine.h
  vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td
  vendor/llvm/dist/include/llvm/Target/TargetSubtargetInfo.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/IndVarSimplify.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LICM.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopDeletion.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopInstSimplify.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopRotation.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
  vendor/llvm/dist/include/llvm/Transforms/Scalar/LoopUnrollPass.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/LoopUtils.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/UnrollLoop.h
  vendor/llvm/dist/include/llvm/Transforms/Vectorize/LoopVectorize.h
  vendor/llvm/dist/lib/Analysis/AssumptionCache.cpp
  vendor/llvm/dist/lib/Analysis/CMakeLists.txt
  vendor/llvm/dist/lib/Analysis/CostModel.cpp
  vendor/llvm/dist/lib/Analysis/IVUsers.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/LoopAccessAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/LoopInfo.cpp
  vendor/llvm/dist/lib/Analysis/LoopPass.cpp
  vendor/llvm/dist/lib/Analysis/MemoryDependenceAnalysis.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp
  vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp
  vendor/llvm/dist/lib/Analysis/ValueTracking.cpp
  vendor/llvm/dist/lib/CMakeLists.txt
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIE.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalISel/RegBankSelect.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBank.cpp
  vendor/llvm/dist/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp
  vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp
  vendor/llvm/dist/lib/CodeGen/PeepholeOptimizer.cpp
  vendor/llvm/dist/lib/CodeGen/ScheduleDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeTypes.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  vendor/llvm/dist/lib/DebugInfo/CodeView/CMakeLists.txt
  vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolDumper.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFContext.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDie.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFFormValue.cpp
  vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFUnit.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  vendor/llvm/dist/lib/IR/AutoUpgrade.cpp
  vendor/llvm/dist/lib/IR/DIBuilder.cpp
  vendor/llvm/dist/lib/IR/Globals.cpp
  vendor/llvm/dist/lib/IR/LLVMContextImpl.h
  vendor/llvm/dist/lib/LTO/LTOBackend.cpp
  vendor/llvm/dist/lib/LTO/ThinLTOCodeGenerator.cpp
  vendor/llvm/dist/lib/Object/CMakeLists.txt
  vendor/llvm/dist/lib/ObjectYAML/DWARFYAML.cpp
  vendor/llvm/dist/lib/Passes/PassBuilder.cpp
  vendor/llvm/dist/lib/ProfileData/InstrProf.cpp
  vendor/llvm/dist/lib/Support/FileOutputBuffer.cpp
  vendor/llvm/dist/lib/Support/Host.cpp
  vendor/llvm/dist/lib/Support/TarWriter.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
  vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td
  vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/AArch64/AArch64TargetTransformInfo.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
  vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/EvergreenInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.td
  vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/SIShrinkInstructions.cpp
  vendor/llvm/dist/lib/Target/AMDGPU/VOP1Instructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/VOP2Instructions.td
  vendor/llvm/dist/lib/Target/AMDGPU/VOPCInstructions.td
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMTargetTransformInfo.h
  vendor/llvm/dist/lib/Target/Lanai/LanaiTargetTransformInfo.h
  vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp
  vendor/llvm/dist/lib/Target/NVPTX/ManagedStringPool.h
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXAsmPrinter.h
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXISelLowering.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXInstrInfo.td
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXSection.h
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetMachine.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetObjectFile.h
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetTransformInfo.h
  vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp
  vendor/llvm/dist/lib/Target/TargetMachine.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
  vendor/llvm/dist/lib/Target/X86/X86.td
  vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86InstrAVX512.td
  vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.h
  vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86TargetTransformInfo.h
  vendor/llvm/dist/lib/Transforms/IPO/LowerTypeTests.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/InstCombineInternal.h
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombinePHI.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineShifts.cpp
  vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/InstrProfiling.cpp
  vendor/llvm/dist/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/CMakeLists.txt
  vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LICM.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopDeletion.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopDistribute.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/LoopSink.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopUnrollPass.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/NewGVN.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/StructurizeCFG.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopUnroll.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollRuntime.cpp
  vendor/llvm/dist/lib/Transforms/Utils/LoopUtils.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp
  vendor/llvm/dist/runtimes/CMakeLists.txt
  vendor/llvm/dist/test/Analysis/CostModel/AArch64/store.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/strided-load-i16.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/strided-load-i32.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/strided-load-i64.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/strided-load-i8.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-ashr-cost.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-lshr-cost.ll
  vendor/llvm/dist/test/Analysis/CostModel/X86/vshift-shl-cost.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/max-trip-count.ll
  vendor/llvm/dist/test/CodeGen/AArch64/arm64-neon-copy.ll
  vendor/llvm/dist/test/CodeGen/AArch64/arm64-nvcast.ll
  vendor/llvm/dist/test/CodeGen/AArch64/bitreverse.ll
  vendor/llvm/dist/test/CodeGen/AArch64/rbit.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fmul-2-combine-multi-use.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/fp32_to_fp16.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/insert_vector_elt.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/local-stack-slot-bug.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/mad-combine.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/sext-in-reg.ll
  vendor/llvm/dist/test/CodeGen/AMDGPU/v_mac.ll
  vendor/llvm/dist/test/CodeGen/ARM/fp16-promote.ll
  vendor/llvm/dist/test/CodeGen/ARM/fpcmp_ueq.ll
  vendor/llvm/dist/test/CodeGen/ARM/vdup.ll
  vendor/llvm/dist/test/CodeGen/ARM/vpadd.ll
  vendor/llvm/dist/test/CodeGen/ARM/vtrn.ll
  vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/extractelement.ll
  vendor/llvm/dist/test/CodeGen/NVPTX/fast-math.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/variable_elem_vec_extracts.ll
  vendor/llvm/dist/test/CodeGen/WebAssembly/function-bitcasts.ll
  vendor/llvm/dist/test/CodeGen/X86/atomic-eflags-reuse.ll
  vendor/llvm/dist/test/CodeGen/X86/avx-cvt.ll
  vendor/llvm/dist/test/CodeGen/X86/avx-trunc.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512-cvt.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512-select.ll
  vendor/llvm/dist/test/CodeGen/X86/avx512-trunc.ll
  vendor/llvm/dist/test/CodeGen/X86/cmp.ll
  vendor/llvm/dist/test/CodeGen/X86/cpus.ll
  vendor/llvm/dist/test/CodeGen/X86/extractelement-index.ll
  vendor/llvm/dist/test/CodeGen/X86/extractelement-legalization-store-ordering.ll
  vendor/llvm/dist/test/CodeGen/X86/i64-mem-copy.ll
  vendor/llvm/dist/test/CodeGen/X86/implicit-null-checks.mir
  vendor/llvm/dist/test/CodeGen/X86/lzcnt-zext-cmp.ll
  vendor/llvm/dist/test/CodeGen/X86/slow-unaligned-mem.ll
  vendor/llvm/dist/test/CodeGen/X86/sse2-intrinsics-fast-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_ins_extract-1.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_insert-4.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_insert-8.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_int_to_fp.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-128.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-256.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-512.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-128.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-256.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-lshr-512.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-128.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-256.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shift-shl-512.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-combining-xop.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-variable-128.ll
  vendor/llvm/dist/test/CodeGen/X86/vector-shuffle-variable-256.ll
  vendor/llvm/dist/test/CodeGen/X86/x86-64-double-shifts-var.ll
  vendor/llvm/dist/test/DebugInfo/Generic/simplifycfg_sink_last_inst.ll
  vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_BE-relocations.s
  vendor/llvm/dist/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_relocations.s
  vendor/llvm/dist/test/Instrumentation/AddressSanitizer/global_metadata_darwin.ll
  vendor/llvm/dist/test/MC/AMDGPU/vop_dpp.s
  vendor/llvm/dist/test/MC/AMDGPU/vop_sdwa.s
  vendor/llvm/dist/test/MC/ARM/directive-object_arch-2.s
  vendor/llvm/dist/test/MC/ARM/directive-object_arch.s
  vendor/llvm/dist/test/ObjectYAML/MachO/DWARF-debug_info.yaml
  vendor/llvm/dist/test/Other/loop-pass-ordering.ll
  vendor/llvm/dist/test/Other/new-pass-manager.ll
  vendor/llvm/dist/test/Other/pass-pipeline-parsing.ll
  vendor/llvm/dist/test/Transforms/GVN/assume-equal.ll
  vendor/llvm/dist/test/Transforms/GVN/invariant.group.ll
  vendor/llvm/dist/test/Transforms/InstCombine/fabs.ll
  vendor/llvm/dist/test/Transforms/InstCombine/fast-math.ll
  vendor/llvm/dist/test/Transforms/InstCombine/fdiv.ll
  vendor/llvm/dist/test/Transforms/InstCombine/pow-4.ll
  vendor/llvm/dist/test/Transforms/InstCombine/pow-sqrt.ll
  vendor/llvm/dist/test/Transforms/InstSimplify/floating-point-arithmetic.ll
  vendor/llvm/dist/test/Transforms/LICM/argmemonly-call.ll
  vendor/llvm/dist/test/Transforms/LICM/assume.ll
  vendor/llvm/dist/test/Transforms/LICM/atomics.ll
  vendor/llvm/dist/test/Transforms/LICM/basictest.ll
  vendor/llvm/dist/test/Transforms/LICM/constexpr.ll
  vendor/llvm/dist/test/Transforms/LICM/crash.ll
  vendor/llvm/dist/test/Transforms/LICM/debug-value.ll
  vendor/llvm/dist/test/Transforms/LICM/extra-copies.ll
  vendor/llvm/dist/test/Transforms/LICM/funclet.ll
  vendor/llvm/dist/test/Transforms/LICM/hoist-bitcast-load.ll
  vendor/llvm/dist/test/Transforms/LICM/hoist-deref-load.ll
  vendor/llvm/dist/test/Transforms/LICM/hoist-nounwind.ll
  vendor/llvm/dist/test/Transforms/LICM/hoist-round.ll
  vendor/llvm/dist/test/Transforms/LICM/hoisting.ll
  vendor/llvm/dist/test/Transforms/LICM/lcssa-ssa-promoter.ll
  vendor/llvm/dist/test/Transforms/LICM/no-preheader-test.ll
  vendor/llvm/dist/test/Transforms/LICM/preheader-safe.ll
  vendor/llvm/dist/test/Transforms/LICM/promote-order.ll
  vendor/llvm/dist/test/Transforms/LICM/promote-tls.ll
  vendor/llvm/dist/test/Transforms/LICM/scalar-promote-memmodel.ll
  vendor/llvm/dist/test/Transforms/LICM/scalar_promote-unwind.ll
  vendor/llvm/dist/test/Transforms/LICM/scalar_promote.ll
  vendor/llvm/dist/test/Transforms/LICM/speculate.ll
  vendor/llvm/dist/test/Transforms/LICM/volatile-alias.ll
  vendor/llvm/dist/test/Transforms/LoopSimplify/preserve-scev.ll
  vendor/llvm/dist/test/Transforms/LoopUnroll/peel-loop-pgo.ll
  vendor/llvm/dist/test/Transforms/LowerTypeTests/Inputs/import-unsat.yaml
  vendor/llvm/dist/test/Transforms/LowerTypeTests/function.ll
  vendor/llvm/dist/test/Transforms/LowerTypeTests/import-unsat.ll
  vendor/llvm/dist/test/Transforms/LowerTypeTests/simple.ll
  vendor/llvm/dist/test/Transforms/NewGVN/assume-equal.ll
  vendor/llvm/dist/test/Transforms/NewGVN/invariant.group.ll
  vendor/llvm/dist/test/Transforms/PGOProfile/comdat_internal.ll
  vendor/llvm/dist/test/Transforms/PGOProfile/comdat_rename.ll
  vendor/llvm/dist/test/Transforms/PGOProfile/indirect_call_profile.ll
  vendor/llvm/dist/test/Transforms/StructurizeCFG/no-branch-to-entry.ll
  vendor/llvm/dist/tools/dsymutil/DwarfLinker.cpp
  vendor/llvm/dist/tools/llvm-config/BuildVariables.inc.in
  vendor/llvm/dist/tools/llvm-config/CMakeLists.txt
  vendor/llvm/dist/tools/llvm-config/llvm-config.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/CMakeLists.txt
  vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.cpp
  vendor/llvm/dist/tools/llvm-pdbdump/LLVMOutputStyle.h
  vendor/llvm/dist/tools/llvm-pdbdump/YAMLOutputStyle.h
  vendor/llvm/dist/tools/llvm-pdbdump/llvm-pdbdump.cpp
  vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp
  vendor/llvm/dist/tools/llvm-xray/CMakeLists.txt
  vendor/llvm/dist/tools/llvm-xray/xray-extract.cc
  vendor/llvm/dist/tools/obj2yaml/dwarf2yaml.cpp
  vendor/llvm/dist/tools/opt/NewPMDriver.cpp
  vendor/llvm/dist/tools/yaml2obj/yaml2dwarf.cpp
  vendor/llvm/dist/tools/yaml2obj/yaml2macho.cpp
  vendor/llvm/dist/tools/yaml2obj/yaml2obj.h
  vendor/llvm/dist/unittests/Analysis/CMakeLists.txt
  vendor/llvm/dist/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp
  vendor/llvm/dist/unittests/IR/DominatorTreeTest.cpp
  vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp
  vendor/llvm/dist/unittests/Support/CMakeLists.txt
  vendor/llvm/dist/unittests/Transforms/CMakeLists.txt
  vendor/llvm/dist/utils/release/build_llvm_package.bat
  vendor/llvm/dist/utils/unittest/CMakeLists.txt
  vendor/llvm/dist/utils/unittest/UnitTestMain/TestMain.cpp

Modified: vendor/llvm/dist/CMakeLists.txt
==============================================================================
--- vendor/llvm/dist/CMakeLists.txt	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/CMakeLists.txt	Sat Jan 14 15:37:50 2017	(r312173)
@@ -29,7 +29,7 @@ if(NOT DEFINED LLVM_VERSION_PATCH)
   set(LLVM_VERSION_PATCH 0)
 endif()
 if(NOT DEFINED LLVM_VERSION_SUFFIX)
-  set(LLVM_VERSION_SUFFIX svn)
+  set(LLVM_VERSION_SUFFIX "")
 endif()
 
 if (POLICY CMP0048)

Modified: vendor/llvm/dist/LICENSE.TXT
==============================================================================
--- vendor/llvm/dist/LICENSE.TXT	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/LICENSE.TXT	Sat Jan 14 15:37:50 2017	(r312173)
@@ -4,7 +4,7 @@ LLVM Release License
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2003-2016 University of Illinois at Urbana-Champaign.
+Copyright (c) 2003-2017 University of Illinois at Urbana-Champaign.
 All rights reserved.
 
 Developed by:

Modified: vendor/llvm/dist/cmake/modules/AddLLVM.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/AddLLVM.cmake	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/cmake/modules/AddLLVM.cmake	Sat Jan 14 15:37:50 2017	(r312173)
@@ -1007,6 +1007,7 @@ function(add_unittest test_suite test_na
   endif()
 
   include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include)
+  include_directories(${LLVM_MAIN_SRC_DIR}/utils/unittest/googlemock/include)
   if (NOT LLVM_ENABLE_THREADS)
     list(APPEND LLVM_COMPILE_DEFINITIONS GTEST_HAS_PTHREAD=0)
   endif ()

Added: vendor/llvm/dist/cmake/modules/CheckLinkerFlag.cmake
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/llvm/dist/cmake/modules/CheckLinkerFlag.cmake	Sat Jan 14 15:37:50 2017	(r312173)
@@ -0,0 +1,8 @@
+include(CheckCXXCompilerFlag)
+
+function(check_linker_flag flag out_var)
+  set(OLD_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
+  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${flag}")
+  check_cxx_compiler_flag("" ${out_var})
+  set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
+endfunction()

Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Sat Jan 14 15:37:50 2017	(r312173)
@@ -597,6 +597,14 @@ if (UNIX AND
   append("-fcolor-diagnostics" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
 endif()
 
+# lld doesn't print colored diagnostics when invoked from Ninja
+if (UNIX AND CMAKE_GENERATOR STREQUAL "Ninja")
+  include(CheckLinkerFlag)
+  check_linker_flag("-Wl,-color-diagnostics" LINKER_SUPPORTS_COLOR_DIAGNOSTICS)
+  append_if(LINKER_SUPPORTS_COLOR_DIAGNOSTICS "-Wl,-color-diagnostics"
+    CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
+endif()
+
 # Add flags for add_dead_strip().
 # FIXME: With MSVS, consider compiling with /Gy and linking with /OPT:REF?
 # But MinSizeRel seems to add that automatically, so maybe disable these

Modified: vendor/llvm/dist/docs/LangRef.rst
==============================================================================
--- vendor/llvm/dist/docs/LangRef.rst	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/docs/LangRef.rst	Sat Jan 14 15:37:50 2017	(r312173)
@@ -2169,8 +2169,9 @@ Fast-Math Flags
 
 LLVM IR floating-point binary ops (:ref:`fadd <i_fadd>`,
 :ref:`fsub <i_fsub>`, :ref:`fmul <i_fmul>`, :ref:`fdiv <i_fdiv>`,
-:ref:`frem <i_frem>`, :ref:`fcmp <i_fcmp>`) have the following flags that can
-be set to enable otherwise unsafe floating point operations
+:ref:`frem <i_frem>`, :ref:`fcmp <i_fcmp>`) and :ref:`call <i_call>`
+instructions have the following flags that can be set to enable
+otherwise unsafe floating point transformations.
 
 ``nnan``
    No NaNs - Allow optimizations to assume the arguments and result are not

Modified: vendor/llvm/dist/docs/ReleaseNotes.rst
==============================================================================
--- vendor/llvm/dist/docs/ReleaseNotes.rst	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/docs/ReleaseNotes.rst	Sat Jan 14 15:37:50 2017	(r312173)
@@ -26,11 +26,6 @@ have questions or comments, the `LLVM De
 <http://lists.llvm.org/mailman/listinfo/llvm-dev>`_ is a good place to send
 them.
 
-Note that if you are reading this file from a Subversion checkout or the main
-LLVM web page, this document applies to the *next* release, not the current
-one.  To see the release notes for a specific release, please see the `releases
-page <http://llvm.org/releases/>`_.
-
 Non-comprehensive list of changes in this release
 =================================================
 * The C API functions LLVMAddFunctionAttr, LLVMGetFunctionAttr,
@@ -57,6 +52,9 @@ Non-comprehensive list of changes in thi
   the previously used names should become descriptions and a short name in the
   style of a programming language identifier should be added.
 
+* LLVM now handles invariant.group across different basic blocks, which makes
+  it possible to devirtualize virtual calls inside loops.
+
 * ... next change ...
 
 .. NOTE

Modified: vendor/llvm/dist/include/llvm/ADT/PointerSumType.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/PointerSumType.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/ADT/PointerSumType.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -94,7 +94,7 @@ public:
     return HelperT::template Lookup<N>::TraitsT::getFromVoidPointer(getImpl());
   }
 
-  operator bool() const { return Value & HelperT::PointerMask; }
+  explicit operator bool() const { return Value & HelperT::PointerMask; }
   bool operator==(const PointerSumType &R) const { return Value == R.Value; }
   bool operator!=(const PointerSumType &R) const { return Value != R.Value; }
   bool operator<(const PointerSumType &R) const { return Value < R.Value; }

Modified: vendor/llvm/dist/include/llvm/ADT/iterator.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/iterator.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/ADT/iterator.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -33,6 +33,32 @@ namespace llvm {
 /// Another abstraction that this doesn't provide is implementing increment in
 /// terms of addition of one. These aren't equivalent for all iterator
 /// categories, and respecting that adds a lot of complexity for little gain.
+///
+/// Classes wishing to use `iterator_facade_base` should implement the following
+/// methods:
+///
+/// Forward Iterators:
+///   (All of the following methods)
+///   - DerivedT &operator=(const DerivedT &R);
+///   - bool operator==(const DerivedT &R) const;
+///   - const T &operator*() const;
+///   - T &operator*();
+///   - DerivedT &operator++();
+///
+/// Bidirectional Iterators:
+///   (All methods of forward iterators, plus the following)
+///   - DerivedT &operator--();
+///
+/// Random-access Iterators:
+///   (All methods of bidirectional iterators excluding the following)
+///   - DerivedT &operator++();
+///   - DerivedT &operator--();
+///   (and plus the following)
+///   - bool operator<(const DerivedT &RHS) const;
+///   - DifferenceTypeT operator-(const DerivedT &R) const;
+///   - DerivedT &operator+=(DifferenceTypeT N);
+///   - DerivedT &operator-=(DifferenceTypeT N);
+///
 template <typename DerivedT, typename IteratorCategoryT, typename T,
           typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T *,
           typename ReferenceT = T &>

Modified: vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/AssumptionCache.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -46,6 +46,30 @@ class AssumptionCache {
   /// intrinsic.
   SmallVector<WeakVH, 4> AssumeHandles;
 
+  class AffectedValueCallbackVH final : public CallbackVH {
+    AssumptionCache *AC;
+    void deleted() override;
+    void allUsesReplacedWith(Value *) override;
+
+  public:
+    using DMI = DenseMapInfo<Value *>;
+
+    AffectedValueCallbackVH(Value *V, AssumptionCache *AC = nullptr)
+        : CallbackVH(V), AC(AC) {}
+  };
+
+  friend AffectedValueCallbackVH;
+
+  /// \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>;
+  AffectedValuesMap AffectedValues;
+
+  /// Get the vector of assumptions which affect a value from the cache.
+  SmallVector<WeakVH, 1> &getAffectedValues(Value *V);
+
   /// \brief Flag tracking whether we have scanned the function yet.
   ///
   /// We want to be as lazy about this as possible, and so we scan the function
@@ -66,11 +90,16 @@ public:
   /// not already be in the cache.
   void registerAssumption(CallInst *CI);
 
+  /// \brief Update the cache of values being affected by this assumption (i.e.
+  /// the values about which this assumption provides information).
+  void updateAffectedValues(CallInst *CI);
+
   /// \brief Clear the cache of @llvm.assume intrinsics for a function.
   ///
   /// It will be re-scanned the next time it is requested.
   void clear() {
     AssumeHandles.clear();
+    AffectedValues.clear();
     Scanned = false;
   }
 
@@ -87,6 +116,18 @@ public:
       scanFunction();
     return AssumeHandles;
   }
+
+  /// \brief Access the list of assumptions which affect this value.
+  MutableArrayRef<WeakVH> assumptionsFor(const Value *V) {
+    if (!Scanned)
+      scanFunction();
+
+    auto AVI = AffectedValues.find_as(const_cast<Value *>(V));
+    if (AVI == AffectedValues.end())
+      return MutableArrayRef<WeakVH>();
+
+    return AVI->second;
+  }
 };
 
 /// \brief A function analysis which provides an \c AssumptionCache.

Modified: vendor/llvm/dist/include/llvm/Analysis/IVUsers.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/IVUsers.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/IVUsers.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -15,8 +15,8 @@
 #ifndef LLVM_ANALYSIS_IVUSERS_H
 #define LLVM_ANALYSIS_IVUSERS_H
 
+#include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/Analysis/LoopPass.h"
-#include "llvm/Analysis/LoopPassManager.h"
 #include "llvm/Analysis/ScalarEvolutionNormalization.h"
 #include "llvm/IR/ValueHandle.h"
 
@@ -193,17 +193,10 @@ class IVUsersAnalysis : public AnalysisI
 public:
   typedef IVUsers Result;
 
-  IVUsers run(Loop &L, LoopAnalysisManager &AM);
+  IVUsers run(Loop &L, LoopAnalysisManager &AM,
+              LoopStandardAnalysisResults &AR);
 };
 
-/// Printer pass for the \c IVUsers for a loop.
-class IVUsersPrinterPass : public PassInfoMixin<IVUsersPrinterPass> {
-  raw_ostream &OS;
-
-public:
-  explicit IVUsersPrinterPass(raw_ostream &OS) : OS(OS) {}
-  PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM);
-};
 }
 
 #endif

Modified: vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -148,7 +148,7 @@ public:
     ///
     /// This happens when an edge has been deleted. We leave the edge objects
     /// around but clear them.
-    operator bool() const;
+    explicit operator bool() const;
 
     /// Returnss the \c Kind of the edge.
     Kind getKind() const;

Modified: vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/LoopAccessAnalysis.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -20,7 +20,7 @@
 #include "llvm/ADT/SetVector.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/AliasSetTracker.h"
-#include "llvm/Analysis/LoopPassManager.h"
+#include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/ValueHandle.h"
@@ -753,18 +753,8 @@ class LoopAccessAnalysis
 
 public:
   typedef LoopAccessInfo Result;
-  Result run(Loop &, LoopAnalysisManager &);
-  static StringRef name() { return "LoopAccessAnalysis"; }
-};
-
-/// \brief Printer pass for the \c LoopAccessInfo results.
-class LoopAccessInfoPrinterPass
-    : public PassInfoMixin<LoopAccessInfoPrinterPass> {
-  raw_ostream &OS;
 
-public:
-  explicit LoopAccessInfoPrinterPass(raw_ostream &OS) : OS(OS) {}
-  PreservedAnalyses run(Loop &L, LoopAnalysisManager &AM);
+  Result run(Loop &L, LoopAnalysisManager &AM, LoopStandardAnalysisResults &AR);
 };
 
 inline Instruction *MemoryDepChecker::Dependence::getSource(

Added: vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/llvm/dist/include/llvm/Analysis/LoopAnalysisManager.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -0,0 +1,155 @@
+//===- LoopAnalysisManager.h - Loop analysis management ---------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+/// \file
+///
+/// This header provides classes for managing per-loop analyses. These are
+/// typically used as part of a loop pass pipeline over the loop nests of
+/// a function.
+///
+/// Loop analyses are allowed to make some simplifying assumptions:
+/// 1) Loops are, where possible, in simplified form.
+/// 2) Loops are *always* in LCSSA form.
+/// 3) A collection of analysis results are available:
+///    - LoopInfo
+///    - DominatorTree
+///    - ScalarEvolution
+///    - AAManager
+///
+/// The primary mechanism to provide these invariants is the loop pass manager,
+/// but they can also be manually provided in order to reason about a loop from
+/// outside of a dedicated pass manager.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
+#define LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
+
+#include "llvm/ADT/PostOrderIterator.h"
+#include "llvm/ADT/PriorityWorklist.h"
+#include "llvm/ADT/STLExtras.h"
+#include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Analysis/BasicAliasAnalysis.h"
+#include "llvm/Analysis/GlobalsModRef.h"
+#include "llvm/Analysis/LoopInfo.h"
+#include "llvm/Analysis/ScalarEvolution.h"
+#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h"
+#include "llvm/Analysis/TargetLibraryInfo.h"
+#include "llvm/Analysis/TargetTransformInfo.h"
+#include "llvm/IR/Dominators.h"
+#include "llvm/IR/PassManager.h"
+
+namespace llvm {
+
+/// The adaptor from a function pass to a loop pass computes these analyses and
+/// makes them available to the loop passes "for free". Each loop pass is
+/// expected expected to update these analyses if necessary to ensure they're
+/// valid after it runs.
+struct LoopStandardAnalysisResults {
+  AAResults &AA;
+  AssumptionCache &AC;
+  DominatorTree &DT;
+  LoopInfo &LI;
+  ScalarEvolution &SE;
+  TargetLibraryInfo &TLI;
+  TargetTransformInfo &TTI;
+};
+
+/// Extern template declaration for the analysis set for this IR unit.
+extern template class AllAnalysesOn<Loop>;
+
+extern template class AnalysisManager<Loop, LoopStandardAnalysisResults &>;
+/// \brief The loop analysis manager.
+///
+/// See the documentation for the AnalysisManager template for detail
+/// documentation. This typedef serves as a convenient way to refer to this
+/// construct in the adaptors and proxies used to integrate this into the larger
+/// pass manager infrastructure.
+typedef AnalysisManager<Loop, LoopStandardAnalysisResults &>
+    LoopAnalysisManager;
+
+/// A proxy from a \c LoopAnalysisManager to a \c Function.
+typedef InnerAnalysisManagerProxy<LoopAnalysisManager, Function>
+    LoopAnalysisManagerFunctionProxy;
+
+/// A specialized result for the \c LoopAnalysisManagerFunctionProxy which
+/// retains a \c LoopInfo reference.
+///
+/// This allows it to collect loop objects for which analysis results may be
+/// cached in the \c LoopAnalysisManager.
+template <> class LoopAnalysisManagerFunctionProxy::Result {
+public:
+  explicit Result(LoopAnalysisManager &InnerAM, LoopInfo &LI)
+      : InnerAM(&InnerAM), LI(&LI) {}
+  Result(Result &&Arg) : InnerAM(std::move(Arg.InnerAM)), LI(Arg.LI) {
+    // We have to null out the analysis manager in the moved-from state
+    // because we are taking ownership of the responsibilty to clear the
+    // analysis state.
+    Arg.InnerAM = nullptr;
+  }
+  Result &operator=(Result &&RHS) {
+    InnerAM = RHS.InnerAM;
+    LI = RHS.LI;
+    // We have to null out the analysis manager in the moved-from state
+    // because we are taking ownership of the responsibilty to clear the
+    // analysis state.
+    RHS.InnerAM = nullptr;
+    return *this;
+  }
+  ~Result() {
+    // InnerAM is cleared in a moved from state where there is nothing to do.
+    if (!InnerAM)
+      return;
+
+    // Clear out the analysis manager if we're being destroyed -- it means we
+    // didn't even see an invalidate call when we got invalidated.
+    InnerAM->clear();
+  }
+
+  /// Accessor for the analysis manager.
+  LoopAnalysisManager &getManager() { return *InnerAM; }
+
+  /// Handler for invalidation of the proxy for a particular function.
+  ///
+  /// If the proxy, \c LoopInfo, and associated analyses are preserved, this
+  /// will merely forward the invalidation event to any cached loop analysis
+  /// results for loops within this function.
+  ///
+  /// If the necessary loop infrastructure is not preserved, this will forcibly
+  /// clear all of the cached analysis results that are keyed on the \c
+  /// LoopInfo for this function.
+  bool invalidate(Function &F, const PreservedAnalyses &PA,
+                  FunctionAnalysisManager::Invalidator &Inv);
+
+private:
+  LoopAnalysisManager *InnerAM;
+  LoopInfo *LI;
+};
+
+/// Provide a specialized run method for the \c LoopAnalysisManagerFunctionProxy
+/// so it can pass the \c LoopInfo to the result.
+template <>
+LoopAnalysisManagerFunctionProxy::Result
+LoopAnalysisManagerFunctionProxy::run(Function &F, FunctionAnalysisManager &AM);
+
+// Ensure the \c LoopAnalysisManagerFunctionProxy is provided as an extern
+// template.
+extern template class InnerAnalysisManagerProxy<LoopAnalysisManager, Function>;
+
+extern template class OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop,
+                                                LoopStandardAnalysisResults &>;
+/// A proxy from a \c FunctionAnalysisManager to a \c Loop.
+typedef OuterAnalysisManagerProxy<FunctionAnalysisManager, Loop,
+                                  LoopStandardAnalysisResults &>
+    FunctionAnalysisManagerLoopProxy;
+
+/// Returns the minimum set of Analyses that all loop passes must preserve.
+PreservedAnalyses getLoopPassPreservedAnalyses();
+}
+
+#endif // LLVM_ANALYSIS_LOOPANALYSISMANAGER_H

Modified: vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -853,17 +853,8 @@ public:
   void getAnalysisUsage(AnalysisUsage &AU) const override;
 };
 
-/// \brief Pass for printing a loop's contents as LLVM's text IR assembly.
-class PrintLoopPass : public PassInfoMixin<PrintLoopPass> {
-  raw_ostream &OS;
-  std::string Banner;
-
-public:
-  PrintLoopPass();
-  PrintLoopPass(raw_ostream &OS, const std::string &Banner = "");
-
-  PreservedAnalyses run(Loop &L, AnalysisManager<Loop> &);
-};
+/// Function to print a loop's contents as LLVM's text IR assembly.
+void printLoop(Loop &L, raw_ostream &OS, const std::string &Banner = "");
 
 } // End llvm namespace
 

Modified: vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/MemoryDependenceAnalysis.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -302,6 +302,10 @@ private:
     NonLocalPointerInfo() : Size(MemoryLocation::UnknownSize) {}
   };
 
+  /// Cache storing single nonlocal def for the instruction.
+  /// It is set when nonlocal def would be found in function returning only
+  /// local dependencies.
+  DenseMap<Instruction *, NonLocalDepResult> NonLocalDefsCache;
   /// This map stores the cached results of doing a pointer lookup at the
   /// bottom of a block.
   ///
@@ -441,9 +445,9 @@ public:
   /// This analysis looks for other loads and stores with invariant.group
   /// metadata and the same pointer operand. Returns Unknown if it does not
   /// find anything, and Def if it can be assumed that 2 instructions load or
-  /// store the same value.
-  /// FIXME: This analysis works only on single block because of restrictions
-  /// at the call site.
+  /// store the same value and NonLocal which indicate that non-local Def was
+  /// found, which can be retrieved by calling getNonLocalPointerDependency
+  /// with the same queried instruction.
   MemDepResult getInvariantGroupPointerDependency(LoadInst *LI, BasicBlock *BB);
 
   /// Looks at a memory location for a load (specified by MemLocBase, Offs, and

Modified: vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -55,6 +55,11 @@ struct MemIntrinsicInfo {
   // Same Id is set by the target for corresponding load/store intrinsics.
   unsigned short MatchingId;
   int NumMemRefs;
+
+  /// This is the pointer that the intrinsic is loading from or storing to.
+  /// If this is non-null, then analysis/optimization passes can assume that
+  /// this intrinsic is functionally equivalent to a load/store from this
+  /// pointer.
   Value *PtrVal;
 };
 
@@ -518,11 +523,15 @@ public:
   unsigned getMaxInterleaveFactor(unsigned VF) const;
 
   /// \return The expected cost of arithmetic ops, such as mul, xor, fsub, etc.
+  /// \p Args is an optional argument which holds the instruction operands  
+  /// values so the TTI can analyize those values searching for special 
+  /// cases\optimizations based on those values.
   int getArithmeticInstrCost(
       unsigned Opcode, Type *Ty, OperandValueKind Opd1Info = OK_AnyValue,
       OperandValueKind Opd2Info = OK_AnyValue,
       OperandValueProperties Opd1PropInfo = OP_None,
-      OperandValueProperties Opd2PropInfo = OP_None) const;
+      OperandValueProperties Opd2PropInfo = OP_None,
+      ArrayRef<const Value *> Args = ArrayRef<const Value *>()) const;
 
   /// \return The cost of a shuffle instruction of kind Kind and of type Tp.
   /// The index and subtype parameters are used by the subvector insertion and
@@ -763,7 +772,8 @@ public:
   getArithmeticInstrCost(unsigned Opcode, Type *Ty, OperandValueKind Opd1Info,
                          OperandValueKind Opd2Info,
                          OperandValueProperties Opd1PropInfo,
-                         OperandValueProperties Opd2PropInfo) = 0;
+                         OperandValueProperties Opd2PropInfo,
+                         ArrayRef<const Value *> Args) = 0;
   virtual int getShuffleCost(ShuffleKind Kind, Type *Tp, int Index,
                              Type *SubTp) = 0;
   virtual int getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src) = 0;
@@ -984,9 +994,10 @@ public:
   getArithmeticInstrCost(unsigned Opcode, Type *Ty, OperandValueKind Opd1Info,
                          OperandValueKind Opd2Info,
                          OperandValueProperties Opd1PropInfo,
-                         OperandValueProperties Opd2PropInfo) override {
+                         OperandValueProperties Opd2PropInfo,
+                         ArrayRef<const Value *> Args) override {
     return Impl.getArithmeticInstrCost(Opcode, Ty, Opd1Info, Opd2Info,
-                                       Opd1PropInfo, Opd2PropInfo);
+                                       Opd1PropInfo, Opd2PropInfo, Args);
   }
   int getShuffleCost(ShuffleKind Kind, Type *Tp, int Index,
                      Type *SubTp) override {

Modified: vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -306,7 +306,8 @@ public:
                                   TTI::OperandValueKind Opd1Info,
                                   TTI::OperandValueKind Opd2Info,
                                   TTI::OperandValueProperties Opd1PropInfo,
-                                  TTI::OperandValueProperties Opd2PropInfo) {
+                                  TTI::OperandValueProperties Opd2PropInfo,
+                                  ArrayRef<const Value *> Args) {
     return 1;
   }
 
@@ -427,6 +428,63 @@ public:
     return VF;
   }
 protected:
+  // Obtain the minimum required size to hold the value (without the sign)
+  // In case of a vector it returns the min required size for one element.
+  unsigned minRequiredElementSize(const Value* Val, bool &isSigned) {
+    if (isa<ConstantDataVector>(Val) || isa<ConstantVector>(Val)) {
+      const auto* VectorValue = cast<Constant>(Val);
+
+      // In case of a vector need to pick the max between the min
+      // required size for each element
+      auto *VT = cast<VectorType>(Val->getType());
+
+      // Assume unsigned elements
+      isSigned = false;
+
+      // The max required size is the total vector width divided by num
+      // of elements in the vector
+      unsigned MaxRequiredSize = VT->getBitWidth() / VT->getNumElements();
+
+      unsigned MinRequiredSize = 0;
+      for(unsigned i = 0, e = VT->getNumElements(); i < e; ++i) {
+        if (auto* IntElement =
+              dyn_cast<ConstantInt>(VectorValue->getAggregateElement(i))) {
+          bool signedElement = IntElement->getValue().isNegative();
+          // Get the element min required size.
+          unsigned ElementMinRequiredSize =
+            IntElement->getValue().getMinSignedBits() - 1;
+          // In case one element is signed then all the vector is signed.
+          isSigned |= signedElement;
+          // Save the max required bit size between all the elements.
+          MinRequiredSize = std::max(MinRequiredSize, ElementMinRequiredSize);
+        }
+        else {
+          // not an int constant element
+          return MaxRequiredSize;
+        }
+      }
+      return MinRequiredSize;
+    }
+
+    if (const auto* CI = dyn_cast<ConstantInt>(Val)) {
+      isSigned = CI->getValue().isNegative();
+      return CI->getValue().getMinSignedBits() - 1;
+    }
+
+    if (const auto* Cast = dyn_cast<SExtInst>(Val)) {
+      isSigned = true;
+      return Cast->getSrcTy()->getScalarSizeInBits() - 1;
+    }
+
+    if (const auto* Cast = dyn_cast<ZExtInst>(Val)) {
+      isSigned = false;
+      return Cast->getSrcTy()->getScalarSizeInBits();
+    }
+
+    isSigned = false;
+    return Val->getType()->getScalarSizeInBits();
+  }
+
   bool isStridedAccess(const SCEV *Ptr) {
     return Ptr && isa<SCEVAddRecExpr>(Ptr);
   }

Modified: vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/Analysis/ValueTracking.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -169,8 +169,12 @@ template <typename T> class ArrayRef;
 
   /// Return true if we can prove that the specified FP value is either a NaN or
   /// never less than 0.0.
-  bool CannotBeOrderedLessThanZero(const Value *V, const TargetLibraryInfo *TLI,
-                                   unsigned Depth = 0);
+  /// If \p IncludeNeg0 is false, -0.0 is considered less than 0.0.
+  bool CannotBeOrderedLessThanZero(const Value *V, const TargetLibraryInfo *TLI);
+
+  /// \returns true if we can prove that the specified FP value has a 0 sign
+  /// bit.
+  bool SignBitMustBeZero(const Value *V, const TargetLibraryInfo *TLI);
 
   /// If the specified value can be set by repeating the same byte in memory,
   /// return the i8 value that it is represented with. This is true for all i8

Modified: vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -308,7 +308,8 @@ public:
       TTI::OperandValueKind Opd1Info = TTI::OK_AnyValue,
       TTI::OperandValueKind Opd2Info = TTI::OK_AnyValue,
       TTI::OperandValueProperties Opd1PropInfo = TTI::OP_None,
-      TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None) {
+      TTI::OperandValueProperties Opd2PropInfo = TTI::OP_None,
+      ArrayRef<const Value *> Args = ArrayRef<const Value *>()) {
     // Check if any of the operands are vector operands.
     const TargetLoweringBase *TLI = getTLI();
     int ISD = TLI->InstructionOpcodeToISD(Opcode);

Modified: vendor/llvm/dist/include/llvm/CodeGen/DIE.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/DIE.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/DIE.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -52,13 +52,20 @@ class DIEAbbrevData {
   /// Dwarf form code.
   dwarf::Form Form;
 
+  /// Dwarf attribute value for DW_FORM_implicit_const
+  int64_t Value;
+
 public:
-  DIEAbbrevData(dwarf::Attribute A, dwarf::Form F) : Attribute(A), Form(F) {}
+  DIEAbbrevData(dwarf::Attribute A, dwarf::Form F)
+      : Attribute(A), Form(F), Value(0) {}
+  DIEAbbrevData(dwarf::Attribute A, int64_t V)
+      : Attribute(A), Form(dwarf::DW_FORM_implicit_const), Value(V) {}
 
   /// Accessors.
   /// @{
   dwarf::Attribute getAttribute() const { return Attribute; }
   dwarf::Form getForm() const { return Form; }
+  int64_t getValue() const { return Value; }
   /// @}
 
   /// Used to gather unique data for the abbreviation folding set.
@@ -102,6 +109,11 @@ public:
     Data.push_back(DIEAbbrevData(Attribute, Form));
   }
 
+  /// Adds attribute with DW_FORM_implicit_const value
+  void AddImplicitConstAttribute(dwarf::Attribute Attribute, int64_t Value) {
+    Data.push_back(DIEAbbrevData(Attribute, Value));
+  }
+
   /// Used to gather unique data for the abbreviation folding set.
   void Profile(FoldingSetNodeID &ID) const;
 

Modified: vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegBankSelect.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -76,6 +76,7 @@ class MachineBlockFrequencyInfo;
 class MachineRegisterInfo;
 class TargetPassConfig;
 class TargetRegisterInfo;
+class raw_ostream;
 
 /// This pass implements the reg bank selector pass used in the GlobalISel
 /// pipeline. At the end of this pass, all register operands have been assigned
@@ -450,6 +451,18 @@ private:
     bool operator>(const MappingCost &Cost) const {
       return *this != Cost && Cost < *this;
     }
+
+    /// Print this on dbgs() stream.
+    void dump() const;
+
+    /// Print this on \p OS;
+    void print(raw_ostream &OS) const;
+
+    /// Overload the stream operator for easy debug printing.
+    friend raw_ostream &operator<<(raw_ostream &OS, const MappingCost &Cost) {
+      Cost.print(OS);
+      return OS;
+    }
   };
 
   /// Interface to the target lowering info related
@@ -626,6 +639,7 @@ public:
   /// \endcode
   bool runOnMachineFunction(MachineFunction &MF) override;
 };
+
 } // End namespace llvm.
 
 #endif

Modified: vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBank.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -41,11 +41,8 @@ private:
   friend RegisterBankInfo;
 
 public:
-  /// The default constructor will leave the object in
-  /// an invalid state. I.e. isValid() == false.
-  /// The fields must be updated to fix that and only
-  /// RegisterBankInfo instances are allowed to do that
-  RegisterBank();
+  RegisterBank(unsigned ID, const char *Name, unsigned Size,
+               const uint32_t *ContainedRegClasses);
 
   /// Get the identifier of this register bank.
   unsigned getID() const { return ID; }

Modified: vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -384,10 +384,6 @@ protected:
 
   /// Create a RegisterBankInfo that can accomodate up to \p NumRegBanks
   /// RegisterBank instances.
-  ///
-  /// \note For the verify method to succeed all the \p NumRegBanks
-  /// must be initialized by createRegisterBank and updated with
-  /// addRegBankCoverage RegisterBank.
   RegisterBankInfo(RegisterBank **RegBanks, unsigned NumRegBanks);
 
   /// This constructor is meaningless.
@@ -400,31 +396,6 @@ protected:
     llvm_unreachable("This constructor should not be executed");
   }
 
-  /// Create a new register bank with the given parameter and add it
-  /// to RegBanks.
-  /// \pre \p ID must not already be used.
-  /// \pre \p ID < NumRegBanks.
-  void createRegisterBank(unsigned ID, const char *Name);
-
-  /// Add \p RCId to the set of register class that the register bank,
-  /// identified \p ID, covers.
-  /// This method transitively adds all the sub classes and the subreg-classes
-  /// of \p RCId to the set of covered register classes.
-  /// It also adjusts the size of the register bank to reflect the maximal
-  /// size of a value that can be hold into that register bank.
-  ///
-  /// \note This method does *not* add the super classes of \p RCId.
-  /// The rationale is if \p ID covers the registers of \p RCId, that
-  /// does not necessarily mean that \p ID covers the set of registers
-  /// of RCId's superclasses.
-  /// This method does *not* add the superreg classes as well for consistents.
-  /// The expected use is to add the coverage top-down with respect to the
-  /// register hierarchy.
-  ///
-  /// \todo TableGen should just generate the BitSet vector for us.
-  void addRegBankCoverage(unsigned ID, unsigned RCId,
-                          const TargetRegisterInfo &TRI);
-
   /// Get the register bank identified by \p ID.
   RegisterBank &getRegBank(unsigned ID) {
     assert(ID < getNumRegBanks() && "Accessing an unknown register bank");

Modified: vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/ISDOpcodes.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -503,19 +503,6 @@ namespace ISD {
     /// address spaces.
     ADDRSPACECAST,
 
-    /// CONVERT_RNDSAT - This operator is used to support various conversions
-    /// between various types (float, signed, unsigned and vectors of those
-    /// types) with rounding and saturation. NOTE: Avoid using this operator as
-    /// most target don't support it and the operator might be removed in the
-    /// future. It takes the following arguments:
-    ///   0) value
-    ///   1) dest type (type to convert to)
-    ///   2) src type (type to convert from)
-    ///   3) rounding imm
-    ///   4) saturation imm
-    ///   5) ISD::CvtCode indicating the type of conversion to do
-    CONVERT_RNDSAT,
-
     /// FP16_TO_FP, FP_TO_FP16 - These operators are used to perform promotions
     /// and truncation for half-precision (16 bit) floating numbers. These nodes
     /// form a semi-softened interface for dealing with f16 (as an i16), which
@@ -927,21 +914,6 @@ namespace ISD {
   /// SETCC_INVALID if it is not possible to represent the resultant comparison.
   CondCode getSetCCAndOperation(CondCode Op1, CondCode Op2, bool isInteger);
 
-  //===--------------------------------------------------------------------===//
-  /// This enum defines the various converts CONVERT_RNDSAT supports.
-  enum CvtCode {
-    CVT_FF,     /// Float from Float
-    CVT_FS,     /// Float from Signed
-    CVT_FU,     /// Float from Unsigned
-    CVT_SF,     /// Signed from Float
-    CVT_UF,     /// Unsigned from Float
-    CVT_SS,     /// Signed from Signed
-    CVT_SU,     /// Signed from Unsigned
-    CVT_US,     /// Unsigned from Signed
-    CVT_UU,     /// Unsigned from Unsigned
-    CVT_INVALID /// Marker - Invalid opcode
-  };
-
 } // end llvm::ISD namespace
 
 } // end llvm namespace

Modified: vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/SelectionDAG.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -626,12 +626,6 @@ public:
 
   SDValue getCondCode(ISD::CondCode Cond);
 
-  /// Returns the ConvertRndSat Note: Avoid using this node because it may
-  /// disappear in the future and most targets don't support it.
-  SDValue getConvertRndSat(EVT VT, const SDLoc &dl, SDValue Val, SDValue DTy,
-                           SDValue STy, SDValue Rnd, SDValue Sat,
-                           ISD::CvtCode Code);
-
   /// Return an ISD::VECTOR_SHUFFLE node. The number of elements in VT,
   /// which must be a vector type, must match the number of mask elements
   /// NumElts. An integer mask element equal to -1 is treated as undefined.

Modified: vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/CodeGen/SelectionDAGNodes.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -1860,26 +1860,6 @@ public:
   }
 };
 
-/// NOTE: avoid using this node as this may disappear in the
-/// future and most targets don't support it.
-class CvtRndSatSDNode : public SDNode {
-  ISD::CvtCode CvtCode;
-
-  friend class SelectionDAG;
-
-  explicit CvtRndSatSDNode(EVT VT, unsigned Order, const DebugLoc &dl,
-                           ISD::CvtCode Code)
-      : SDNode(ISD::CONVERT_RNDSAT, Order, dl, getSDVTList(VT)), CvtCode(Code) {
-  }
-
-public:
-  ISD::CvtCode getCvtCode() const { return CvtCode; }
-
-  static bool classof(const SDNode *N) {
-    return N->getOpcode() == ISD::CONVERT_RNDSAT;
-  }
-};
-
 /// This class is used to represent EVT's, which are used
 /// to parameterize some operations.
 class VTSDNode : public SDNode {
@@ -2041,7 +2021,7 @@ public:
   friend class SelectionDAG;
 
   MaskedStoreSDNode(unsigned Order, const DebugLoc &dl, SDVTList VTs,
-                    bool isTrunc, bool isCompressing, EVT MemVT, 
+                    bool isTrunc, bool isCompressing, EVT MemVT,
                     MachineMemOperand *MMO)
       : MaskedLoadStoreSDNode(ISD::MSTORE, Order, dl, VTs, MemVT, MMO) {
     StoreSDNodeBits.IsTruncating = isTrunc;
@@ -2054,8 +2034,8 @@ public:
   bool isTruncatingStore() const { return StoreSDNodeBits.IsTruncating; }
 
   /// Returns true if the op does a compression to the vector before storing.
-  /// The node contiguously stores the active elements (integers or floats) 
-  /// in src (those with their respective bit set in writemask k) to unaligned 
+  /// The node contiguously stores the active elements (integers or floats)
+  /// in src (those with their respective bit set in writemask k) to unaligned
   /// memory at base_addr.
   bool isCompressingStore() const { return StoreSDNodeBits.IsCompressing; }
 

Added: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeDumper.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -0,0 +1,56 @@
+//===-- CVTypeDumper.h - CodeView type info dumper --------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_CODEVIEW_CVTYPEDUMPER_H
+#define LLVM_DEBUGINFO_CODEVIEW_CVTYPEDUMPER_H
+
+#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/StringSet.h"
+#include "llvm/DebugInfo/CodeView/TypeDatabase.h"
+#include "llvm/DebugInfo/CodeView/TypeIndex.h"
+#include "llvm/DebugInfo/CodeView/TypeRecord.h"
+#include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
+#include "llvm/Support/ScopedPrinter.h"
+
+namespace llvm {
+
+namespace codeview {
+
+/// Dumper for CodeView type streams found in COFF object files and PDB files.
+class CVTypeDumper {
+public:
+  explicit CVTypeDumper(TypeDatabase &TypeDB) : TypeDB(TypeDB) {}
+
+  /// Dumps one type record.  Returns false if there was a type parsing error,
+  /// and true otherwise.  This should be called in order, since the dumper
+  /// maintains state about previous records which are necessary for cross
+  /// type references.
+  Error dump(const CVType &Record, TypeVisitorCallbacks &Dumper);
+
+  /// Dumps the type records in Types. Returns false if there was a type stream
+  /// parse error, and true otherwise.
+  Error dump(const CVTypeArray &Types, TypeVisitorCallbacks &Dumper);
+
+  /// Dumps the type records in Data. Returns false if there was a type stream
+  /// parse error, and true otherwise. Use this method instead of the
+  /// CVTypeArray overload when type records are laid out contiguously in
+  /// memory.
+  Error dump(ArrayRef<uint8_t> Data, TypeVisitorCallbacks &Dumper);
+
+  static void printTypeIndex(ScopedPrinter &Printer, StringRef FieldName,
+                             TypeIndex TI, TypeDatabase &DB);
+
+private:
+  TypeDatabase &TypeDB;
+};
+
+} // end namespace codeview
+} // end namespace llvm
+
+#endif // LLVM_DEBUGINFO_CODEVIEW_TYPEDUMPER_H

Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h
==============================================================================
--- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h	Sat Jan 14 12:55:32 2017	(r312172)
+++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolDumper.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -20,15 +20,15 @@ namespace llvm {
 class ScopedPrinter;
 
 namespace codeview {
-class CVTypeDumper;
+class TypeDatabase;
 
 /// Dumper for CodeView symbol streams found in COFF object files and PDB files.
 class CVSymbolDumper {
 public:
-  CVSymbolDumper(ScopedPrinter &W, CVTypeDumper &CVTD,
+  CVSymbolDumper(ScopedPrinter &W, TypeDatabase &TypeDB,
                  std::unique_ptr<SymbolDumpDelegate> ObjDelegate,
                  bool PrintRecordBytes)
-      : W(W), CVTD(CVTD), ObjDelegate(std::move(ObjDelegate)),
+      : W(W), TypeDB(TypeDB), ObjDelegate(std::move(ObjDelegate)),
         PrintRecordBytes(PrintRecordBytes) {}
 
   /// Dumps one type record.  Returns false if there was a type parsing error,
@@ -43,7 +43,7 @@ public:
 
 private:
   ScopedPrinter &W;
-  CVTypeDumper &CVTD;
+  TypeDatabase &TypeDB;
   std::unique_ptr<SymbolDumpDelegate> ObjDelegate;
 
   bool PrintRecordBytes;

Added: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeDatabase.h	Sat Jan 14 15:37:50 2017	(r312173)
@@ -0,0 +1,55 @@
+//===- TypeDatabase.h - A collection of CodeView type records ---*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_CODEVIEW_TYPEDATABASE_H
+#define LLVM_DEBUGINFO_CODEVIEW_TYPEDATABASE_H
+
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/StringRef.h"

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



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