svn commit: r320970 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/esan contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/ms...

Dimitry Andric dim at FreeBSD.org
Thu Jul 13 21:58:48 UTC 2017


Author: dim
Date: Thu Jul 13 21:58:45 2017
New Revision: 320970
URL: https://svnweb.freebsd.org/changeset/base/320970

Log:
  Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and update
  build glue.

Added:
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc
     - copied unchanged from r320968, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_errno.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h
     - copied unchanged from r320968, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_errno.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno_codes.h
     - copied unchanged from r320968, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_errno_codes.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc
     - copied unchanged from r320968, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_mac_libcdep.cc
  projects/clang500-import/contrib/libc++/src/experimental/filesystem/filesystem_time_helper.h
     - copied unchanged from r320968, vendor/libc++/dist/src/experimental/filesystem/filesystem_time_helper.h
  projects/clang500-import/contrib/libc++/src/include/refstring.h
     - copied unchanged from r320968, vendor/libc++/dist/src/include/refstring.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
     - copied unchanged from r320968, vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h
     - copied unchanged from r320968, vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStreamBuilder.h
     - copied unchanged from r320968, vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PublicsStreamBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/SafepointIRVerifier.h
     - copied unchanged from r320968, vendor/llvm/dist/include/llvm/IR/SafepointIRVerifier.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/ReverseIteration.h
     - copied unchanged from r320968, vendor/llvm/dist/include/llvm/Support/ReverseIteration.h
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp
     - copied unchanged from r320968, vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
     - copied unchanged from r320968, vendor/llvm/dist/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/IR/SafepointIRVerifier.cpp
     - copied unchanged from r320968, vendor/llvm/dist/lib/IR/SafepointIRVerifier.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp
     - copied unchanged from r320968, vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMacroFusion.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUMacroFusion.h
     - copied unchanged from r320968, vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUMacroFusion.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrFormats.td
     - copied unchanged from r320968, vendor/llvm/dist/lib/Target/Mips/MipsMTInstrFormats.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsMTInstrInfo.td
     - copied unchanged from r320968, vendor/llvm/dist/lib/Target/Mips/MipsMTInstrInfo.td
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DiffPrinter.cpp
     - copied unchanged from r320968, vendor/llvm/dist/tools/llvm-pdbutil/DiffPrinter.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DiffPrinter.h
     - copied unchanged from r320968, vendor/llvm/dist/tools/llvm-pdbutil/DiffPrinter.h
Deleted:
  projects/clang500-import/contrib/libc++/include/__refstring
Modified:
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_errors.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_internal.h
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_posix.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_rtl.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_thread.cc
  projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc
  projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c
  projects/clang500-import/contrib/compiler-rt/lib/builtins/int_util.c
  projects/clang500-import/contrib/compiler-rt/lib/esan/working_set.cpp
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.h
  projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_freebsd.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc
  projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls.h
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_utils.cpp
  projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_utils.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/dd/dd_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_clock.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.cc
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_stat.h
  projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.cc
  projects/clang500-import/contrib/libc++/include/cmath
  projects/clang500-import/contrib/libc++/include/complex
  projects/clang500-import/contrib/libc++/include/optional
  projects/clang500-import/contrib/libc++/include/regex
  projects/clang500-import/contrib/libc++/include/string
  projects/clang500-import/contrib/libc++/src/experimental/filesystem/operations.cpp
  projects/clang500-import/contrib/libc++/src/stdexcept.cpp
  projects/clang500-import/contrib/llvm/include/llvm-c/OrcBindings.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/APInt.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/STLExtras.h
  projects/clang500-import/contrib/llvm/include/llvm/ADT/SmallPtrSet.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/InlineCost.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h
  projects/clang500-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h
  projects/clang500-import/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineFunction.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
  projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DIContext.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
  projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
  projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/IRBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Instructions.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicInst.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Intrinsics.td
  projects/clang500-import/contrib/llvm/include/llvm/IR/LLVMContext.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Module.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/PassManager.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/PatternMatch.h
  projects/clang500-import/contrib/llvm/include/llvm/IR/Type.h
  projects/clang500-import/contrib/llvm/include/llvm/InitializePasses.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCObjectWriter.h
  projects/clang500-import/contrib/llvm/include/llvm/MC/MCSymbolWasm.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/COFF.h
  projects/clang500-import/contrib/llvm/include/llvm/Object/Wasm.h
  projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h
  projects/clang500-import/contrib/llvm/include/llvm/Option/OptTable.h
  projects/clang500-import/contrib/llvm/include/llvm/Passes/PassBuilder.h
  projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProf.h
  projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h
  projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProfWriter.h
  projects/clang500-import/contrib/llvm/include/llvm/ProfileData/ProfileCommon.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/BlockFrequency.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/Compiler.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/DynamicLibrary.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/ErrorHandling.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h
  projects/clang500-import/contrib/llvm/include/llvm/Support/UnicodeCharRanges.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetInstrInfo.h
  projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h
  projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
  projects/clang500-import/contrib/llvm/include/llvm/module.modulemap
  projects/clang500-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/CaptureTracking.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/DemandedBits.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/DependenceAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/LazyCallGraph.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/Lint.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/LoopInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/ValueTracking.cpp
  projects/clang500-import/contrib/llvm/lib/Analysis/VectorUtils.cpp
  projects/clang500-import/contrib/llvm/lib/AsmParser/LLLexer.cpp
  projects/clang500-import/contrib/llvm/lib/AsmParser/LLParser.cpp
  projects/clang500-import/contrib/llvm/lib/AsmParser/LLParser.h
  projects/clang500-import/contrib/llvm/lib/AsmParser/LLToken.h
  projects/clang500-import/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGen.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MIRPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineFunction.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineInstr.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MachineVerifier.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/MacroFusion.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/RegAllocFast.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/SplitKit.cpp
  projects/clang500-import/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp
  projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
  projects/clang500-import/contrib/llvm/lib/IR/AsmWriter.cpp
  projects/clang500-import/contrib/llvm/lib/IR/ConstantFold.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Constants.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Core.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Instruction.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Instructions.cpp
  projects/clang500-import/contrib/llvm/lib/IR/LLVMContext.cpp
  projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.cpp
  projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.h
  projects/clang500-import/contrib/llvm/lib/IR/Module.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Type.cpp
  projects/clang500-import/contrib/llvm/lib/IR/Verifier.cpp
  projects/clang500-import/contrib/llvm/lib/LTO/LTO.cpp
  projects/clang500-import/contrib/llvm/lib/Linker/IRMover.cpp
  projects/clang500-import/contrib/llvm/lib/MC/ELFObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/MC/MCAssembler.cpp
  projects/clang500-import/contrib/llvm/lib/MC/MachObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/MC/WasmObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Object/WasmObjectFile.cpp
  projects/clang500-import/contrib/llvm/lib/Object/WindowsResource.cpp
  projects/clang500-import/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp
  projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp
  projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProf.cpp
  projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProfReader.cpp
  projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProfWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Support/CommandLine.cpp
  projects/clang500-import/contrib/llvm/lib/Support/DynamicLibrary.cpp
  projects/clang500-import/contrib/llvm/lib/Support/ErrorHandling.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Host.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Mutex.cpp
  projects/clang500-import/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc
  projects/clang500-import/contrib/llvm/lib/Support/Unix/Host.inc
  projects/clang500-import/contrib/llvm/lib/Support/Unix/Program.inc
  projects/clang500-import/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc
  projects/clang500-import/contrib/llvm/lib/Support/Windows/Host.inc
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
  projects/clang500-import/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRDevices.td
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRMCInstLower.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/InstPrinter/AVRInstPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
  projects/clang500-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSchedule.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h
  projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h
  projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
  projects/clang500-import/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ13.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZ196.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZScheduleZEC12.td
  projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
  projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86CallLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86CallLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86CallingConv.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td
  projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/Inliner.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CmpInstAnalysis.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/Local.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Utils/VNCoercion.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  projects/clang500-import/contrib/llvm/tools/clang/include/clang-c/Index.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Format/Format.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Core/Diagnostic.h
  projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/XCore.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/Format.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/FormatToken.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/bmiintrin.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/cpuid.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/immintrin.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/mmintrin.h
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/Parser.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/Sema.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Core/Diagnostic.cpp
  projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
  projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Chunks.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Config.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/DriverUtils.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Error.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Error.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/InputFiles.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.h
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Symbols.cpp
  projects/clang500-import/contrib/llvm/tools/lld/COFF/Writer.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Config.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Driver.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Error.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Error.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Filesystem.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/GdbIndex.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/InputSection.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Relocations.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/ScriptParser.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Symbols.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.cpp
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Thunks.h
  projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp
  projects/clang500-import/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Host.h
  projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/File.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/SocketAddress.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/AuxVector.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h
  projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp
  projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/lldb-platform.cpp
  projects/clang500-import/contrib/llvm/tools/lli/OrcLazyJIT.cpp
  projects/clang500-import/contrib/llvm/tools/lli/OrcLazyJIT.h
  projects/clang500-import/contrib/llvm/tools/lli/RemoteJITUtils.h
  projects/clang500-import/contrib/llvm/tools/lli/lli.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-lto/llvm-lto.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/Diff.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
  projects/clang500-import/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp
  projects/clang500-import/contrib/llvm/tools/llvm-stress/llvm-stress.cpp
  projects/clang500-import/contrib/llvm/tools/opt/NewPMDriver.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenInstruction.h
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenMapTable.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenTarget.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenTarget.h
  projects/clang500-import/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/FastISelEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/X86DisassemblerTables.h
  projects/clang500-import/contrib/llvm/utils/TableGen/X86ModRMFilters.h
  projects/clang500-import/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp
  projects/clang500-import/contrib/llvm/utils/TableGen/X86RecognizableInstr.h
  projects/clang500-import/lib/clang/include/clang/Basic/Version.inc
  projects/clang500-import/lib/clang/include/lld/Config/Version.inc
  projects/clang500-import/lib/clang/include/llvm/Support/VCSRevision.h
  projects/clang500-import/lib/clang/libllvm/Makefile
  projects/clang500-import/lib/libc++/Makefile
  projects/clang500-import/lib/libclang_rt/asan/Makefile
  projects/clang500-import/lib/libclang_rt/asan_dynamic/Makefile
  projects/clang500-import/lib/libclang_rt/safestack/Makefile
  projects/clang500-import/lib/libclang_rt/stats/Makefile
  projects/clang500-import/lib/libclang_rt/ubsan_standalone/Makefile
  projects/clang500-import/usr.bin/clang/llvm-pdbutil/Makefile
Directory Properties:
  projects/clang500-import/contrib/compiler-rt/   (props changed)
  projects/clang500-import/contrib/libc++/   (props changed)
  projects/clang500-import/contrib/llvm/   (props changed)
  projects/clang500-import/contrib/llvm/tools/clang/   (props changed)
  projects/clang500-import/contrib/llvm/tools/lld/   (props changed)
  projects/clang500-import/contrib/llvm/tools/lldb/   (props changed)

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_errors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_errors.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_errors.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -61,10 +61,9 @@ static void MaybeDumpRegisters(void *context) {
 static void MaybeReportNonExecRegion(uptr pc) {
 #if SANITIZER_FREEBSD || SANITIZER_LINUX
   MemoryMappingLayout proc_maps(/*cache_enabled*/ true);
-  uptr start, end, protection;
-  while (proc_maps.Next(&start, &end, nullptr, nullptr, 0, &protection)) {
-    if (pc >= start && pc < end &&
-        !(protection & MemoryMappingLayout::kProtectionExecute))
+  MemoryMappedSegment segment;
+  while (proc_maps.Next(&segment)) {
+    if (pc >= segment.start && pc < segment.end && !segment.IsExecutable())
       Report("Hint: PC is at a non-executable region. Maybe a wild jump?\n");
   }
 #endif

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_internal.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_internal.h	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_internal.h	Thu Jul 13 21:58:45 2017	(r320970)
@@ -75,6 +75,7 @@ void NORETURN ShowStatsAndAbort();
 void ReplaceSystemMalloc();
 
 // asan_linux.cc / asan_mac.cc / asan_win.cc
+uptr FindDynamicShadowStart();
 void *AsanDoesNotSupportStaticLinkage();
 void AsanCheckDynamicRTPrereqs();
 void AsanCheckIncompatibleRT();

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_linux.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_linux.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -77,6 +77,11 @@ void *AsanDoesNotSupportStaticLinkage() {
   return &_DYNAMIC;  // defined in link.h
 }
 
+uptr FindDynamicShadowStart() {
+  UNREACHABLE("FindDynamicShadowStart is not available");
+  return 0;
+}
+
 void AsanApplyToGlobals(globals_op_fptr op, const void *needle) {
   UNIMPLEMENTED();
 }
@@ -140,9 +145,9 @@ void AsanCheckIncompatibleRT() {
       // system libraries, causing crashes later in ASan initialization.
       MemoryMappingLayout proc_maps(/*cache_enabled*/true);
       char filename[128];
-      while (proc_maps.Next(nullptr, nullptr, nullptr, filename,
-                            sizeof(filename), nullptr)) {
-        if (IsDynamicRTName(filename)) {
+      MemoryMappedSegment segment(filename, sizeof(filename));
+      while (proc_maps.Next(&segment)) {
+        if (IsDynamicRTName(segment.filename)) {
           Report("Your application is linked against "
                  "incompatible ASan runtimes.\n");
           Die();

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_mac.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_mac.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -55,6 +55,29 @@ void *AsanDoesNotSupportStaticLinkage() {
   return 0;
 }
 
+uptr FindDynamicShadowStart() {
+  uptr granularity = GetMmapGranularity();
+  uptr alignment = 8 * granularity;
+  uptr left_padding = granularity;
+  uptr space_size = kHighShadowEnd + left_padding;
+
+  uptr largest_gap_found = 0;
+  uptr shadow_start = FindAvailableMemoryRange(space_size, alignment,
+                                               granularity, &largest_gap_found);
+  // If the shadow doesn't fit, restrict the address space to make it fit.
+  if (shadow_start == 0) {
+    uptr new_max_vm = RoundDownTo(largest_gap_found << SHADOW_SCALE, alignment);
+    RestrictMemoryToMaxAddress(new_max_vm);
+    kHighMemEnd = new_max_vm - 1;
+    space_size = kHighShadowEnd + left_padding;
+    shadow_start =
+        FindAvailableMemoryRange(space_size, alignment, granularity, nullptr);
+  }
+  CHECK_NE((uptr)0, shadow_start);
+  CHECK(IsAligned(shadow_start, alignment));
+  return shadow_start;
+}
+
 // No-op. Mac does not support static linkage anyway.
 void AsanCheckDynamicRTPrereqs() {}
 

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -26,7 +26,7 @@
 // VS2015 dynamic CRT (MD) work.
 #if SANITIZER_WINDOWS
 #define CXX_OPERATOR_ATTRIBUTE
-#define COMMENT_EXPORT(sym) __pragma(comment(linker, "/export:"##sym))
+#define COMMENT_EXPORT(sym) __pragma(comment(linker, "/export:" sym))
 #ifdef _WIN64
 COMMENT_EXPORT("??2 at YAPEAX_K@Z")                     // operator new
 COMMENT_EXPORT("??2 at YAPEAX_KAEBUnothrow_t@std@@@Z")  // operator new nothrow

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_posix.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_posix.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_posix.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -59,7 +59,7 @@ void AsanOnDeadlySignal(int signo, void *siginfo, void
   //   lis r0,-10000
   //   stdux r1,r1,r0 # store sp to [sp-10000] and update sp by -10000
   // If the store faults then sp will not have been updated, so test above
-  // will not work, becase the fault address will be more than just "slightly"
+  // will not work, because the fault address will be more than just "slightly"
   // below sp.
   if (!IsStackAccess && IsAccessibleMemoryRange(sig.pc, 4)) {
     u32 inst = *(unsigned *)sig.pc;

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_rtl.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_rtl.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_rtl.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -438,15 +438,7 @@ static void InitializeShadowMemory() {
   if (shadow_start == kDefaultShadowSentinel) {
     __asan_shadow_memory_dynamic_address = 0;
     CHECK_EQ(0, kLowShadowBeg);
-
-    uptr granularity = GetMmapGranularity();
-    uptr alignment = 8 * granularity;
-    uptr left_padding = granularity;
-    uptr space_size = kHighShadowEnd + left_padding;
-
-    shadow_start = FindAvailableMemoryRange(space_size, alignment, granularity);
-    CHECK_NE((uptr)0, shadow_start);
-    CHECK(IsAligned(shadow_start, alignment));
+    shadow_start = FindDynamicShadowStart();
   }
   // Update the shadow memory address (potentially) used by instrumentation.
   __asan_shadow_memory_dynamic_address = shadow_start;

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_thread.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_thread.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_thread.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -200,7 +200,6 @@ FakeStack *AsanThread::AsyncSignalSafeLazyInitFakeStac
   uptr stack_size = this->stack_size();
   if (stack_size == 0)  // stack_size is not yet available, don't use FakeStack.
     return nullptr;
-  CHECK_LE(stack_size, 0x10000000);
   uptr old_val = 0;
   // fake_stack_ has 3 states:
   // 0   -- not initialized

Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -217,6 +217,18 @@ void *AsanDoesNotSupportStaticLinkage() {
   return 0;
 }
 
+uptr FindDynamicShadowStart() {
+  uptr granularity = GetMmapGranularity();
+  uptr alignment = 8 * granularity;
+  uptr left_padding = granularity;
+  uptr space_size = kHighShadowEnd + left_padding;
+  uptr shadow_start =
+      FindAvailableMemoryRange(space_size, alignment, granularity, nullptr);
+  CHECK_NE((uptr)0, shadow_start);
+  CHECK(IsAligned(shadow_start, alignment));
+  return shadow_start;
+}
+
 void AsanCheckDynamicRTPrereqs() {}
 
 void AsanCheckIncompatibleRT() {}

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/cpu_model.c	Thu Jul 13 21:58:45 2017	(r320970)
@@ -44,29 +44,16 @@ enum ProcessorVendors {
 };
 
 enum ProcessorTypes {
-  INTEL_ATOM = 1,
+  INTEL_BONNELL = 1,
   INTEL_CORE2,
   INTEL_COREI7,
   AMDFAM10H,
   AMDFAM15H,
-  INTEL_i386,
-  INTEL_i486,
-  INTEL_PENTIUM,
-  INTEL_PENTIUM_PRO,
-  INTEL_PENTIUM_II,
-  INTEL_PENTIUM_III,
-  INTEL_PENTIUM_IV,
-  INTEL_PENTIUM_M,
-  INTEL_CORE_DUO,
-  INTEL_XEONPHI,
-  INTEL_X86_64,
-  INTEL_NOCONA,
-  INTEL_PRESCOTT,
-  AMD_i486,
-  AMDPENTIUM,
-  AMDATHLON,
-  AMDFAM14H,
-  AMDFAM16H,
+  INTEL_SILVERMONT,
+  INTEL_KNL,
+  AMD_BTVER1,
+  AMD_BTVER2,
+  AMDFAM17H,
   CPU_TYPE_MAX
 };
 
@@ -79,32 +66,14 @@ enum ProcessorSubtypes {
   AMDFAM10H_ISTANBUL,
   AMDFAM15H_BDVER1,
   AMDFAM15H_BDVER2,
-  INTEL_PENTIUM_MMX,
-  INTEL_CORE2_65,
-  INTEL_CORE2_45,
+  AMDFAM15H_BDVER3,
+  AMDFAM15H_BDVER4,
+  AMDFAM17H_ZNVER1,
   INTEL_COREI7_IVYBRIDGE,
   INTEL_COREI7_HASWELL,
   INTEL_COREI7_BROADWELL,
   INTEL_COREI7_SKYLAKE,
   INTEL_COREI7_SKYLAKE_AVX512,
-  INTEL_ATOM_BONNELL,
-  INTEL_ATOM_SILVERMONT,
-  INTEL_KNIGHTS_LANDING,
-  AMDPENTIUM_K6,
-  AMDPENTIUM_K62,
-  AMDPENTIUM_K63,
-  AMDPENTIUM_GEODE,
-  AMDATHLON_TBIRD,
-  AMDATHLON_MP,
-  AMDATHLON_XP,
-  AMDATHLON_K8SSE3,
-  AMDATHLON_OPTERON,
-  AMDATHLON_FX,
-  AMDATHLON_64,
-  AMD_BTVER1,
-  AMD_BTVER2,
-  AMDFAM15H_BDVER3,
-  AMDFAM15H_BDVER4,
   CPU_SUBTYPE_MAX
 };
 
@@ -120,11 +89,26 @@ enum ProcessorFeatures {
   FEATURE_SSE4_2,
   FEATURE_AVX,
   FEATURE_AVX2,
-  FEATURE_AVX512,
-  FEATURE_AVX512SAVE,
-  FEATURE_MOVBE,
-  FEATURE_ADX,
-  FEATURE_EM64T
+  FEATURE_SSE4_A,
+  FEATURE_FMA4,
+  FEATURE_XOP,
+  FEATURE_FMA,
+  FEATURE_AVX512F,
+  FEATURE_BMI,
+  FEATURE_BMI2,
+  FEATURE_AES,
+  FEATURE_PCLMUL,
+  FEATURE_AVX512VL,
+  FEATURE_AVX512BW,
+  FEATURE_AVX512DQ,
+  FEATURE_AVX512CD,
+  FEATURE_AVX512ER,
+  FEATURE_AVX512PF,
+  FEATURE_AVX512VBMI,
+  FEATURE_AVX512IFMA,
+  FEATURE_AVX5124VNNIW,
+  FEATURE_AVX5124FMAPS,
+  FEATURE_AVX512VPOPCNTDQ
 };
 
 // The check below for i386 was copied from clang's cpuid.h (__get_cpuid_max).
@@ -164,26 +148,27 @@ static bool isCpuIdSupported() {
 
 /// getX86CpuIDAndInfo - Execute the specified cpuid and return the 4 values in
 /// the specified arguments.  If we can't run cpuid on the host, return true.
-static void getX86CpuIDAndInfo(unsigned value, unsigned *rEAX, unsigned *rEBX,
+static bool getX86CpuIDAndInfo(unsigned value, unsigned *rEAX, unsigned *rEBX,
                                unsigned *rECX, unsigned *rEDX) {
 #if defined(__GNUC__) || defined(__clang__)
 #if defined(__x86_64__)
-  // gcc doesn't know cpuid would clobber ebx/rbx. Preseve it manually.
+  // gcc doesn't know cpuid would clobber ebx/rbx. Preserve it manually.
+  // FIXME: should we save this for Clang?
   __asm__("movq\t%%rbx, %%rsi\n\t"
           "cpuid\n\t"
           "xchgq\t%%rbx, %%rsi\n\t"
           : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX)
           : "a"(value));
+  return false;
 #elif defined(__i386__)
   __asm__("movl\t%%ebx, %%esi\n\t"
           "cpuid\n\t"
           "xchgl\t%%ebx, %%esi\n\t"
           : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX)
           : "a"(value));
-// pedantic #else returns to appease -Wunreachable-code (so we don't generate
-// postprocessed code that looks like "return true; return false;")
+  return false;
 #else
-  assert(0 && "This method is defined only for x86.");
+  return true;
 #endif
 #elif defined(_MSC_VER)
   // The MSVC intrinsic is portable across x86 and x64.
@@ -193,15 +178,16 @@ static void getX86CpuIDAndInfo(unsigned value, unsigne
   *rEBX = registers[1];
   *rECX = registers[2];
   *rEDX = registers[3];
+  return false;
 #else
-  assert(0 && "This method is defined only for GNUC, Clang or MSVC.");
+  return true;
 #endif
 }
 
 /// getX86CpuIDAndInfoEx - Execute the specified cpuid with subleaf and return
 /// the 4 values in the specified arguments.  If we can't run cpuid on the host,
 /// return true.
-static void getX86CpuIDAndInfoEx(unsigned value, unsigned subleaf,
+static bool getX86CpuIDAndInfoEx(unsigned value, unsigned subleaf,
                                  unsigned *rEAX, unsigned *rEBX, unsigned *rECX,
                                  unsigned *rEDX) {
 #if defined(__x86_64__) || defined(_M_X64)
@@ -213,6 +199,7 @@ static void getX86CpuIDAndInfoEx(unsigned value, unsig
           "xchgq\t%%rbx, %%rsi\n\t"
           : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX)
           : "a"(value), "c"(subleaf));
+  return false;
 #elif defined(_MSC_VER)
   int registers[4];
   __cpuidex(registers, value, subleaf);
@@ -220,8 +207,9 @@ static void getX86CpuIDAndInfoEx(unsigned value, unsig
   *rEBX = registers[1];
   *rECX = registers[2];
   *rEDX = registers[3];
+  return false;
 #else
-  assert(0 && "This method is defined only for GNUC, Clang or MSVC.");
+  return true;
 #endif
 #elif defined(__i386__) || defined(_M_IX86)
 #if defined(__GNUC__) || defined(__clang__)
@@ -230,6 +218,7 @@ static void getX86CpuIDAndInfoEx(unsigned value, unsig
           "xchgl\t%%ebx, %%esi\n\t"
           : "=a"(*rEAX), "=S"(*rEBX), "=c"(*rECX), "=d"(*rEDX)
           : "a"(value), "c"(subleaf));
+  return false;
 #elif defined(_MSC_VER)
   __asm {
       mov   eax,value
@@ -244,11 +233,12 @@ static void getX86CpuIDAndInfoEx(unsigned value, unsig
       mov   esi,rEDX
       mov   dword ptr [esi],edx
   }
+  return false;
 #else
-  assert(0 && "This method is defined only for GNUC, Clang or MSVC.");
+  return true;
 #endif
 #else
-  assert(0 && "This method is defined only for x86.");
+  return true;
 #endif
 }
 
@@ -283,84 +273,15 @@ static void detectX86FamilyModel(unsigned EAX, unsigne
   }
 }
 
-static void getIntelProcessorTypeAndSubtype(unsigned int Family,
-                                            unsigned int Model,
-                                            unsigned int Brand_id,
-                                            unsigned int Features,
-                                            unsigned *Type, unsigned *Subtype) {
+static void
+getIntelProcessorTypeAndSubtype(unsigned Family, unsigned Model,
+                                unsigned Brand_id, unsigned Features,
+                                unsigned *Type, unsigned *Subtype) {
   if (Brand_id != 0)
     return;
   switch (Family) {
-  case 3:
-    *Type = INTEL_i386;
-    break;
-  case 4:
-    switch (Model) {
-    case 0: // Intel486 DX processors
-    case 1: // Intel486 DX processors
-    case 2: // Intel486 SX processors
-    case 3: // Intel487 processors, IntelDX2 OverDrive processors,
-            // IntelDX2 processors
-    case 4: // Intel486 SL processor
-    case 5: // IntelSX2 processors
-    case 7: // Write-Back Enhanced IntelDX2 processors
-    case 8: // IntelDX4 OverDrive processors, IntelDX4 processors
-    default:
-      *Type = INTEL_i486;
-      break;
-    }
-  case 5:
-    switch (Model) {
-    case 1: // Pentium OverDrive processor for Pentium processor (60, 66),
-            // Pentium processors (60, 66)
-    case 2: // Pentium OverDrive processor for Pentium processor (75, 90,
-            // 100, 120, 133), Pentium processors (75, 90, 100, 120, 133,
-            // 150, 166, 200)
-    case 3: // Pentium OverDrive processors for Intel486 processor-based
-            // systems
-      *Type = INTEL_PENTIUM;
-      break;
-    case 4: // Pentium OverDrive processor with MMX technology for Pentium
-            // processor (75, 90, 100, 120, 133), Pentium processor with
-            // MMX technology (166, 200)
-      *Type = INTEL_PENTIUM;
-      *Subtype = INTEL_PENTIUM_MMX;
-      break;
-    default:
-      *Type = INTEL_PENTIUM;
-      break;
-    }
   case 6:
     switch (Model) {
-    case 0x01: // Pentium Pro processor
-      *Type = INTEL_PENTIUM_PRO;
-      break;
-    case 0x03: // Intel Pentium II OverDrive processor, Pentium II processor,
-               // model 03
-    case 0x05: // Pentium II processor, model 05, Pentium II Xeon processor,
-               // model 05, and Intel Celeron processor, model 05
-    case 0x06: // Celeron processor, model 06
-      *Type = INTEL_PENTIUM_II;
-      break;
-    case 0x07: // Pentium III processor, model 07, and Pentium III Xeon
-               // processor, model 07
-    case 0x08: // Pentium III processor, model 08, Pentium III Xeon processor,
-               // model 08, and Celeron processor, model 08
-    case 0x0a: // Pentium III Xeon processor, model 0Ah
-    case 0x0b: // Pentium III processor, model 0Bh
-      *Type = INTEL_PENTIUM_III;
-      break;
-    case 0x09: // Intel Pentium M processor, Intel Celeron M processor model 09.
-    case 0x0d: // Intel Pentium M processor, Intel Celeron M processor, model
-               // 0Dh. All processors are manufactured using the 90 nm process.
-    case 0x15: // Intel EP80579 Integrated Processor and Intel EP80579
-               // Integrated Processor with Intel QuickAssist Technology
-      *Type = INTEL_PENTIUM_M;
-      break;
-    case 0x0e: // Intel Core Duo processor, Intel Core Solo processor, model
-               // 0Eh. All processors are manufactured using the 65 nm process.
-      *Type = INTEL_CORE_DUO;
-      break;   // yonah
     case 0x0f: // Intel Core 2 Duo processor, Intel Core 2 Duo mobile
                // processor, Intel Core 2 Quad processor, Intel Core 2 Quad
                // mobile processor, Intel Core 2 Extreme processor, Intel
@@ -368,9 +289,6 @@ static void getIntelProcessorTypeAndSubtype(unsigned i
                // 0Fh. All processors are manufactured using the 65 nm process.
     case 0x16: // Intel Celeron processor model 16h. All processors are
                // manufactured using the 65 nm process
-      *Type = INTEL_CORE2; // "core2"
-      *Subtype = INTEL_CORE2_65;
-      break;
     case 0x17: // Intel Core 2 Extreme processor, Intel Xeon processor, model
                // 17h. All processors are manufactured using the 45 nm process.
                //
@@ -378,14 +296,13 @@ static void getIntelProcessorTypeAndSubtype(unsigned i
     case 0x1d: // Intel Xeon processor MP. All processors are manufactured using
                // the 45 nm process.
       *Type = INTEL_CORE2; // "penryn"
-      *Subtype = INTEL_CORE2_45;
       break;
     case 0x1a: // Intel Core i7 processor and Intel Xeon processor. All
                // processors are manufactured using the 45 nm process.
     case 0x1e: // Intel(R) Core(TM) i7 CPU         870  @ 2.93GHz.
                // As found in a Summer 2010 model iMac.
     case 0x1f:
-    case 0x2e:              // Nehalem EX
+    case 0x2e:             // Nehalem EX
       *Type = INTEL_COREI7; // "nehalem"
       *Subtype = INTEL_COREI7_NEHALEM;
       break;
@@ -403,7 +320,7 @@ static void getIntelProcessorTypeAndSubtype(unsigned i
       *Subtype = INTEL_COREI7_SANDYBRIDGE;
       break;
     case 0x3a:
-    case 0x3e:              // Ivy Bridge EP
+    case 0x3e:             // Ivy Bridge EP
       *Type = INTEL_COREI7; // "ivybridge"
       *Subtype = INTEL_COREI7_IVYBRIDGE;
       break;
@@ -427,22 +344,26 @@ static void getIntelProcessorTypeAndSubtype(unsigned i
       break;
 
     // Skylake:
-    case 0x4e:
-      *Type = INTEL_COREI7; // "skylake-avx512"
-      *Subtype = INTEL_COREI7_SKYLAKE_AVX512;
-      break;
-    case 0x5e:
+    case 0x4e: // Skylake mobile
+    case 0x5e: // Skylake desktop
+    case 0x8e: // Kaby Lake mobile
+    case 0x9e: // Kaby Lake desktop
       *Type = INTEL_COREI7; // "skylake"
       *Subtype = INTEL_COREI7_SKYLAKE;
       break;
 
+    // Skylake Xeon:
+    case 0x55:
+      *Type = INTEL_COREI7;
+      *Subtype = INTEL_COREI7_SKYLAKE_AVX512; // "skylake-avx512"
+      break;
+
     case 0x1c: // Most 45 nm Intel Atom processors
     case 0x26: // 45 nm Atom Lincroft
     case 0x27: // 32 nm Atom Medfield
     case 0x35: // 32 nm Atom Midview
     case 0x36: // 32 nm Atom Midview
-      *Type = INTEL_ATOM;
-      *Subtype = INTEL_ATOM_BONNELL;
+      *Type = INTEL_BONNELL;
       break; // "bonnell"
 
     // Atom Silvermont codes from the Intel software optimization guide.
@@ -452,185 +373,29 @@ static void getIntelProcessorTypeAndSubtype(unsigned i
     case 0x5a:
     case 0x5d:
     case 0x4c: // really airmont
-      *Type = INTEL_ATOM;
-      *Subtype = INTEL_ATOM_SILVERMONT;
+      *Type = INTEL_SILVERMONT;
       break; // "silvermont"
 
     case 0x57:
-      *Type = INTEL_XEONPHI; // knl
-      *Subtype = INTEL_KNIGHTS_LANDING;
+      *Type = INTEL_KNL; // knl
       break;
 
-    default: // Unknown family 6 CPU, try to guess.
-      if (Features & (1 << FEATURE_AVX512)) {
-        *Type = INTEL_XEONPHI; // knl
-        *Subtype = INTEL_KNIGHTS_LANDING;
-        break;
-      }
-      if (Features & (1 << FEATURE_ADX)) {
-        *Type = INTEL_COREI7;
-        *Subtype = INTEL_COREI7_BROADWELL;
-        break;
-      }
-      if (Features & (1 << FEATURE_AVX2)) {
-        *Type = INTEL_COREI7;
-        *Subtype = INTEL_COREI7_HASWELL;
-        break;
-      }
-      if (Features & (1 << FEATURE_AVX)) {
-        *Type = INTEL_COREI7;
-        *Subtype = INTEL_COREI7_SANDYBRIDGE;
-        break;
-      }
-      if (Features & (1 << FEATURE_SSE4_2)) {
-        if (Features & (1 << FEATURE_MOVBE)) {
-          *Type = INTEL_ATOM;
-          *Subtype = INTEL_ATOM_SILVERMONT;
-        } else {
-          *Type = INTEL_COREI7;
-          *Subtype = INTEL_COREI7_NEHALEM;
-        }
-        break;
-      }
-      if (Features & (1 << FEATURE_SSE4_1)) {
-        *Type = INTEL_CORE2; // "penryn"
-        *Subtype = INTEL_CORE2_45;
-        break;
-      }
-      if (Features & (1 << FEATURE_SSSE3)) {
-        if (Features & (1 << FEATURE_MOVBE)) {
-          *Type = INTEL_ATOM;
-          *Subtype = INTEL_ATOM_BONNELL; // "bonnell"
-        } else {
-          *Type = INTEL_CORE2; // "core2"
-          *Subtype = INTEL_CORE2_65;
-        }
-        break;
-      }
-      if (Features & (1 << FEATURE_EM64T)) {
-        *Type = INTEL_X86_64;
-        break; // x86-64
-      }
-      if (Features & (1 << FEATURE_SSE2)) {
-        *Type = INTEL_PENTIUM_M;
-        break;
-      }
-      if (Features & (1 << FEATURE_SSE)) {
-        *Type = INTEL_PENTIUM_III;
-        break;
-      }
-      if (Features & (1 << FEATURE_MMX)) {
-        *Type = INTEL_PENTIUM_II;
-        break;
-      }
-      *Type = INTEL_PENTIUM_PRO;
+    default: // Unknown family 6 CPU.
       break;
+    break;
     }
-  case 15: {
-    switch (Model) {
-    case 0: // Pentium 4 processor, Intel Xeon processor. All processors are
-            // model 00h and manufactured using the 0.18 micron process.
-    case 1: // Pentium 4 processor, Intel Xeon processor, Intel Xeon
-            // processor MP, and Intel Celeron processor. All processors are
-            // model 01h and manufactured using the 0.18 micron process.
-    case 2: // Pentium 4 processor, Mobile Intel Pentium 4 processor - M,
-            // Intel Xeon processor, Intel Xeon processor MP, Intel Celeron
-            // processor, and Mobile Intel Celeron processor. All processors
-            // are model 02h and manufactured using the 0.13 micron process.
-      *Type =
-          ((Features & (1 << FEATURE_EM64T)) ? INTEL_X86_64 : INTEL_PENTIUM_IV);
-      break;
-
-    case 3: // Pentium 4 processor, Intel Xeon processor, Intel Celeron D
-            // processor. All processors are model 03h and manufactured using
-            // the 90 nm process.
-    case 4: // Pentium 4 processor, Pentium 4 processor Extreme Edition,
-            // Pentium D processor, Intel Xeon processor, Intel Xeon
-            // processor MP, Intel Celeron D processor. All processors are
-            // model 04h and manufactured using the 90 nm process.
-    case 6: // Pentium 4 processor, Pentium D processor, Pentium processor
-            // Extreme Edition, Intel Xeon processor, Intel Xeon processor
-            // MP, Intel Celeron D processor. All processors are model 06h
-            // and manufactured using the 65 nm process.
-      *Type =
-          ((Features & (1 << FEATURE_EM64T)) ? INTEL_NOCONA : INTEL_PRESCOTT);
-      break;
-
-    default:
-      *Type =
-          ((Features & (1 << FEATURE_EM64T)) ? INTEL_X86_64 : INTEL_PENTIUM_IV);
-      break;
-    }
-  }
   default:
-    break; /*"generic"*/
+    break; // Unknown.
   }
 }
 
-static void getAMDProcessorTypeAndSubtype(unsigned int Family,
-                                          unsigned int Model,
-                                          unsigned int Features, unsigned *Type,
+static void getAMDProcessorTypeAndSubtype(unsigned Family, unsigned Model,
+                                          unsigned Features, unsigned *Type,
                                           unsigned *Subtype) {
   // FIXME: this poorly matches the generated SubtargetFeatureKV table.  There
   // appears to be no way to generate the wide variety of AMD-specific targets
   // from the information returned from CPUID.
   switch (Family) {
-  case 4:
-    *Type = AMD_i486;
-  case 5:
-    *Type = AMDPENTIUM;
-    switch (Model) {
-    case 6:
-    case 7:
-      *Subtype = AMDPENTIUM_K6;
-      break; // "k6"
-    case 8:
-      *Subtype = AMDPENTIUM_K62;
-      break; // "k6-2"
-    case 9:
-    case 13:
-      *Subtype = AMDPENTIUM_K63;
-      break; // "k6-3"
-    case 10:
-      *Subtype = AMDPENTIUM_GEODE;
-      break; // "geode"
-    default:
-      break;
-    }
-  case 6:
-    *Type = AMDATHLON;
-    switch (Model) {
-    case 4:
-      *Subtype = AMDATHLON_TBIRD;
-      break; // "athlon-tbird"
-    case 6:
-    case 7:
-    case 8:
-      *Subtype = AMDATHLON_MP;
-      break; // "athlon-mp"
-    case 10:
-      *Subtype = AMDATHLON_XP;
-      break; // "athlon-xp"
-    default:
-      break;
-    }
-  case 15:
-    *Type = AMDATHLON;
-    if (Features & (1 << FEATURE_SSE3)) {
-      *Subtype = AMDATHLON_K8SSE3;
-      break; // "k8-sse3"
-    }
-    switch (Model) {
-    case 1:
-      *Subtype = AMDATHLON_OPTERON;
-      break; // "opteron"
-    case 5:
-      *Subtype = AMDATHLON_FX;
-      break; // "athlon-fx"; also opteron
-    default:
-      *Subtype = AMDATHLON_64;
-      break; // "athlon64"
-    }
   case 16:
     *Type = AMDFAM10H; // "amdfam10"
     switch (Model) {
@@ -643,23 +408,16 @@ static void getAMDProcessorTypeAndSubtype(unsigned int
     case 8:
       *Subtype = AMDFAM10H_ISTANBUL;
       break;
-    default:
-      break;
     }
+    break;
   case 20:
-    *Type = AMDFAM14H;
-    *Subtype = AMD_BTVER1;
+    *Type = AMD_BTVER1;
     break; // "btver1";
   case 21:
     *Type = AMDFAM15H;
-    if (!(Features &
-          (1 << FEATURE_AVX))) { // If no AVX support, provide a sane fallback.
-      *Subtype = AMD_BTVER1;
-      break; // "btver1"
-    }
-    if (Model >= 0x50 && Model <= 0x6f) {
+    if (Model >= 0x60 && Model <= 0x7f) {
       *Subtype = AMDFAM15H_BDVER4;
-      break; // "bdver4"; 50h-6Fh: Excavator
+      break; // "bdver4"; 60h-7Fh: Excavator
     }
     if (Model >= 0x30 && Model <= 0x3f) {
       *Subtype = AMDFAM15H_BDVER3;
@@ -675,32 +433,48 @@ static void getAMDProcessorTypeAndSubtype(unsigned int
     }
     break;
   case 22:
-    *Type = AMDFAM16H;
-    if (!(Features &
-          (1 << FEATURE_AVX))) { // If no AVX support provide a sane fallback.
-      *Subtype = AMD_BTVER1;
-      break; // "btver1";
-    }
-    *Subtype = AMD_BTVER2;
+    *Type = AMD_BTVER2;
     break; // "btver2"
+  case 23:
+    *Type = AMDFAM17H;
+    *Subtype = AMDFAM17H_ZNVER1;
+    break;
   default:
     break; // "generic"
   }
 }
 
-static unsigned getAvailableFeatures(unsigned int ECX, unsigned int EDX,
-                                     unsigned MaxLeaf) {
+static void getAvailableFeatures(unsigned ECX, unsigned EDX, unsigned MaxLeaf,
+                                 unsigned *FeaturesOut) {
   unsigned Features = 0;
-  unsigned int EAX, EBX;
-  Features |= (((EDX >> 23) & 1) << FEATURE_MMX);
-  Features |= (((EDX >> 25) & 1) << FEATURE_SSE);
-  Features |= (((EDX >> 26) & 1) << FEATURE_SSE2);
-  Features |= (((ECX >> 0) & 1) << FEATURE_SSE3);
-  Features |= (((ECX >> 9) & 1) << FEATURE_SSSE3);
-  Features |= (((ECX >> 19) & 1) << FEATURE_SSE4_1);
-  Features |= (((ECX >> 20) & 1) << FEATURE_SSE4_2);
-  Features |= (((ECX >> 22) & 1) << FEATURE_MOVBE);
+  unsigned EAX, EBX;
 
+  if ((EDX >> 15) & 1)
+    Features |= 1 << FEATURE_CMOV;
+  if ((EDX >> 23) & 1)
+    Features |= 1 << FEATURE_MMX;
+  if ((EDX >> 25) & 1)
+    Features |= 1 << FEATURE_SSE;
+  if ((EDX >> 26) & 1)
+    Features |= 1 << FEATURE_SSE2;
+
+  if ((ECX >> 0) & 1)
+    Features |= 1 << FEATURE_SSE3;
+  if ((ECX >> 1) & 1)
+    Features |= 1 << FEATURE_PCLMUL;
+  if ((ECX >> 9) & 1)
+    Features |= 1 << FEATURE_SSSE3;
+  if ((ECX >> 12) & 1)
+    Features |= 1 << FEATURE_FMA;
+  if ((ECX >> 19) & 1)
+    Features |= 1 << FEATURE_SSE4_1;
+  if ((ECX >> 20) & 1)
+    Features |= 1 << FEATURE_SSE4_2;
+  if ((ECX >> 23) & 1)
+    Features |= 1 << FEATURE_POPCNT;
+  if ((ECX >> 25) & 1)
+    Features |= 1 << FEATURE_AES;
+
   // If CPUID indicates support for XSAVE, XRESTORE and AVX, and XGETBV
   // indicates that the AVX registers will be saved and restored on context
   // switch, then we have full AVX support.
@@ -708,20 +482,59 @@ static unsigned getAvailableFeatures(unsigned int ECX,
   bool HasAVX = ((ECX & AVXBits) == AVXBits) && !getX86XCR0(&EAX, &EDX) &&
                 ((EAX & 0x6) == 0x6);
   bool HasAVX512Save = HasAVX && ((EAX & 0xe0) == 0xe0);
-  bool HasLeaf7 = MaxLeaf >= 0x7;
-  getX86CpuIDAndInfoEx(0x7, 0x0, &EAX, &EBX, &ECX, &EDX);
-  bool HasADX = HasLeaf7 && ((EBX >> 19) & 1);
-  bool HasAVX2 = HasAVX && HasLeaf7 && (EBX & 0x20);
-  bool HasAVX512 = HasLeaf7 && HasAVX512Save && ((EBX >> 16) & 1);
-  Features |= (HasAVX << FEATURE_AVX);
-  Features |= (HasAVX2 << FEATURE_AVX2);
-  Features |= (HasAVX512 << FEATURE_AVX512);
-  Features |= (HasAVX512Save << FEATURE_AVX512SAVE);
-  Features |= (HasADX << FEATURE_ADX);
 
-  getX86CpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
-  Features |= (((EDX >> 29) & 0x1) << FEATURE_EM64T);
-  return Features;
+  if (HasAVX)
+    Features |= 1 << FEATURE_AVX;
+
+  bool HasLeaf7 =
+      MaxLeaf >= 0x7 && !getX86CpuIDAndInfoEx(0x7, 0x0, &EAX, &EBX, &ECX, &EDX);
+
+  if (HasLeaf7 && ((EBX >> 3) & 1))
+    Features |= 1 << FEATURE_BMI;
+  if (HasLeaf7 && ((EBX >> 5) & 1) && HasAVX)
+    Features |= 1 << FEATURE_AVX2;
+  if (HasLeaf7 && ((EBX >> 9) & 1))
+    Features |= 1 << FEATURE_BMI2;
+  if (HasLeaf7 && ((EBX >> 16) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512F;
+  if (HasLeaf7 && ((EBX >> 17) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512DQ;
+  if (HasLeaf7 && ((EBX >> 21) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512IFMA;
+  if (HasLeaf7 && ((EBX >> 26) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512PF;
+  if (HasLeaf7 && ((EBX >> 27) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512ER;
+  if (HasLeaf7 && ((EBX >> 28) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512CD;
+  if (HasLeaf7 && ((EBX >> 30) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512BW;
+  if (HasLeaf7 && ((EBX >> 31) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512VL;
+
+  if (HasLeaf7 && ((ECX >> 1) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512VBMI;
+  if (HasLeaf7 && ((ECX >> 14) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX512VPOPCNTDQ;
+
+  if (HasLeaf7 && ((EDX >> 2) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX5124VNNIW;
+  if (HasLeaf7 && ((EDX >> 3) & 1) && HasAVX512Save)
+    Features |= 1 << FEATURE_AVX5124FMAPS;
+
+  unsigned MaxExtLevel;
+  getX86CpuIDAndInfo(0x80000000, &MaxExtLevel, &EBX, &ECX, &EDX);
+
+  bool HasExtLeaf1 = MaxExtLevel >= 0x80000001 &&
+                     !getX86CpuIDAndInfo(0x80000001, &EAX, &EBX, &ECX, &EDX);
+  if (HasExtLeaf1 && ((ECX >> 6) & 1))
+    Features |= 1 << FEATURE_SSE4_A;
+  if (HasExtLeaf1 && ((ECX >> 11) & 1))
+    Features |= 1 << FEATURE_XOP;
+  if (HasExtLeaf1 && ((ECX >> 16) & 1))
+    Features |= 1 << FEATURE_FMA4;
+
+  *FeaturesOut = Features;
 }
 
 #if defined(HAVE_INIT_PRIORITY)
@@ -751,11 +564,11 @@ struct __processor_model {
 
 int CONSTRUCTOR_ATTRIBUTE
 __cpu_indicator_init(void) {
-  unsigned int EAX, EBX, ECX, EDX;
-  unsigned int MaxLeaf = 5;
-  unsigned int Vendor;
-  unsigned int Model, Family, Brand_id;
-  unsigned int Features = 0;
+  unsigned EAX, EBX, ECX, EDX;
+  unsigned MaxLeaf = 5;
+  unsigned Vendor;
+  unsigned Model, Family, Brand_id;
+  unsigned Features = 0;
 
   /* This function needs to run just once.  */
   if (__cpu_model.__cpu_vendor)
@@ -765,9 +578,7 @@ __cpu_indicator_init(void) {
     return -1;
 
   /* Assume cpuid insn present. Run in level 0 to get vendor id. */
-  getX86CpuIDAndInfo(0, &MaxLeaf, &Vendor, &ECX, &EDX);
-
-  if (MaxLeaf < 1) {
+  if (getX86CpuIDAndInfo(0, &MaxLeaf, &Vendor, &ECX, &EDX) || MaxLeaf < 1) {
     __cpu_model.__cpu_vendor = VENDOR_OTHER;
     return -1;
   }
@@ -776,7 +587,7 @@ __cpu_indicator_init(void) {
   Brand_id = EBX & 0xff;
 
   /* Find available features. */
-  Features = getAvailableFeatures(ECX, EDX, MaxLeaf);
+  getAvailableFeatures(ECX, EDX, MaxLeaf, &Features);
   __cpu_model.__cpu_features[0] = Features;
 
   if (Vendor == SIG_INTEL) {

Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/int_util.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/int_util.c	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/int_util.c	Thu Jul 13 21:58:45 2017	(r320970)
@@ -45,6 +45,16 @@ void compilerrt_abort_impl(const char *file, int line,
   __assert_rtn(function, file, line, "libcompiler_rt abort");
 }
 
+#elif __Fuchsia__
+
+#ifndef _WIN32
+__attribute__((weak))
+__attribute__((visibility("hidden")))
+#endif
+void compilerrt_abort_impl(const char *file, int line, const char *function) {
+  __builtin_trap();
+}
+
 #else
 
 /* Get the system definition of abort() */

Modified: projects/clang500-import/contrib/compiler-rt/lib/esan/working_set.cpp
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/esan/working_set.cpp	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/esan/working_set.cpp	Thu Jul 13 21:58:45 2017	(r320970)
@@ -160,15 +160,16 @@ static u32 countAndClearShadowValues(u32 BitIdx, uptr 
 static u32 computeWorkingSizeAndReset(u32 BitIdx) {
   u32 WorkingSetSize = 0;
   MemoryMappingLayout MemIter(true/*cache*/);
-  uptr Start, End, Prot;
-  while (MemIter.Next(&Start, &End, nullptr/*offs*/, nullptr/*file*/,
-                      0/*file size*/, &Prot)) {
-    VPrintf(4, "%s: considering %p-%p app=%d shadow=%d prot=%u\n",
-            __FUNCTION__, Start, End, Prot, isAppMem(Start),
-            isShadowMem(Start));
-    if (isShadowMem(Start) && (Prot & MemoryMappingLayout::kProtectionWrite)) {
-      VPrintf(3, "%s: walking %p-%p\n", __FUNCTION__, Start, End);
-      WorkingSetSize += countAndClearShadowValues(BitIdx, Start, End);
+  MemoryMappedSegment Segment;
+  while (MemIter.Next(&Segment)) {
+    VPrintf(4, "%s: considering %p-%p app=%d shadow=%d prot=%u\n", __FUNCTION__,
+            Segment.start, Segment.end, Segment.protection,
+            isAppMem(Segment.start), isShadowMem(Segment.start));
+    if (isShadowMem(Segment.start) && Segment.IsWritable()) {
+      VPrintf(3, "%s: walking %p-%p\n", __FUNCTION__, Segment.start,
+              Segment.end);
+      WorkingSetSize +=
+          countAndClearShadowValues(BitIdx, Segment.start, Segment.end);
     }
   }
   return WorkingSetSize;

Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc	Thu Jul 13 20:04:42 2017	(r320969)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc	Thu Jul 13 21:58:45 2017	(r320970)
@@ -74,6 +74,10 @@ static const char kStdSuppressions[] =
   // definition.
   "leak:*pthread_exit*\n"
 #endif  // SANITIZER_SUPPRESS_LEAK_ON_PTHREAD_EXIT
+#if SANITIZER_MAC
+  // For Darwin and os_log/os_trace: https://reviews.llvm.org/D35173
+  "leak:*_os_trace*\n"
+#endif
   // TLS leak in some glibc versions, described in
   // https://sourceware.org/bugzilla/show_bug.cgi?id=12650.
   "leak:*tls_get_addr*\n";
@@ -301,11 +305,10 @@ static void ProcessThreads(SuspendedThreadsList const 
 }
 
 void ScanRootRegion(Frontier *frontier, const RootRegion &root_region,
-                    uptr region_begin, uptr region_end, uptr prot) {
+                    uptr region_begin, uptr region_end, bool is_readable) {
   uptr intersection_begin = Max(root_region.begin, region_begin);
   uptr intersection_end = Min(region_end, root_region.begin + root_region.size);
   if (intersection_begin >= intersection_end) return;
-  bool is_readable = prot & MemoryMappingLayout::kProtectionRead;
   LOG_POINTERS("Root region %p-%p intersects with mapped region %p-%p (%s)\n",
                root_region.begin, root_region.begin + root_region.size,
                region_begin, region_end,
@@ -318,11 +321,10 @@ void ScanRootRegion(Frontier *frontier, const RootRegi
 static void ProcessRootRegion(Frontier *frontier,
                               const RootRegion &root_region) {
   MemoryMappingLayout proc_maps(/*cache_enabled*/ true);
-  uptr begin, end, prot;
-  while (proc_maps.Next(&begin, &end,
-                        /*offset*/ nullptr, /*filename*/ nullptr,
-                        /*filename_size*/ 0, &prot)) {
-    ScanRootRegion(frontier, root_region, begin, end, prot);
+  MemoryMappedSegment segment;
+  while (proc_maps.Next(&segment)) {
+    ScanRootRegion(frontier, root_region, segment.start, segment.end,
+                   segment.IsReadable());
   }

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


More information about the svn-src-projects mailing list