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