From owner-svn-src-projects@freebsd.org Thu Jul 13 21:58:48 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B0F54DAECA2 for ; Thu, 13 Jul 2017 21:58:48 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F41B865B45; Thu, 13 Jul 2017 21:58:47 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6DLwlrc098711; Thu, 13 Jul 2017 21:58:47 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6DLwjWP098696; Thu, 13 Jul 2017 21:58:45 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707132158.v6DLwjWP098696@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 13 Jul 2017 21:58:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: 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/msan contrib/compiler-rt/li... X-SVN-Commit-Revision: 320970 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Jul 2017 21:58:48 -0000 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@YAPEAX_K@Z") // operator new COMMENT_EXPORT("??2@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 ***