Date: Sun, 2 Jul 2017 11:41:16 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r320572 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/lsan contrib/compiler-rt/lib/msan contrib/compiler-rt/lib/profile contrib/compiler-rt/lib/san... Message-ID: <201707021141.v62BfGks071084@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Sun Jul 2 11:41:15 2017 New Revision: 320572 URL: https://svnweb.freebsd.org/changeset/base/320572 Log: Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306956, and update build glue. Added: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c - copied unchanged from r320555, vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c projects/clang500-import/contrib/compiler-rt/lib/xray/xray_always_instrument.txt - copied unchanged from r320555, vendor/compiler-rt/dist/lib/xray/xray_always_instrument.txt projects/clang500-import/contrib/compiler-rt/lib/xray/xray_never_instrument.txt - copied unchanged from r320555, vendor/compiler-rt/dist/lib/xray/xray_never_instrument.txt projects/clang500-import/contrib/llvm/include/llvm/Analysis/CFLAliasAnalysisUtils.h - copied unchanged from r320553, vendor/llvm/dist/include/llvm/Analysis/CFLAliasAnalysisUtils.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h - copied unchanged from r320553, vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp - copied unchanged from r320553, vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp - copied unchanged from r320553, vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp - copied unchanged from r320553, vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h - copied unchanged from r320553, vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleM3.td - copied unchanged from r320553, vendor/llvm/dist/lib/Target/ARM/ARMScheduleM3.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td - copied unchanged from r320553, vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrSystem.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNios2.def - copied unchanged from r320553, vendor/clang/dist/include/clang/Basic/BuiltinsNios2.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/ - copied from r320553, vendor/clang/dist/include/clang/Tooling/Refactoring/Rename/ projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/ - copied from r320553, vendor/clang/dist/lib/Tooling/Refactoring/Rename/ projects/clang500-import/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp - copied unchanged from r320555, vendor/lld/dist/ELF/Arch/SPARCV9.cpp projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/Connection.h - copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/Connection.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/IOObject.h - copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/IOObject.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/StructuredData.h - copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/StructuredData.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/Timer.h - copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/Timer.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/TraceOptions.h - copied unchanged from r320555, vendor/lldb/dist/include/lldb/Utility/TraceOptions.h projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/Connection.cpp - copied unchanged from r320555, vendor/lldb/dist/source/Utility/Connection.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/IOObject.cpp - copied unchanged from r320555, vendor/lldb/dist/source/Utility/IOObject.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp - copied unchanged from r320555, vendor/lldb/dist/source/Utility/StructuredData.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/Timer.cpp - copied unchanged from r320555, vendor/lldb/dist/source/Utility/Timer.cpp Deleted: projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStreamBuilder.h projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStreamBuilder.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SITypeRewriter.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/BBVectorize.cpp projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Connection.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Timer.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/TraceOptions.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/IOObject.h projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Connection.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Timer.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/IOObject.cpp Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h 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_platform_interceptors.h projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.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_allocator.h projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_android.cpp projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc projects/clang500-import/contrib/libc++/include/__config projects/clang500-import/contrib/libc++/include/new projects/clang500-import/contrib/libc++/include/string projects/clang500-import/contrib/llvm/include/llvm-c/Transforms/Vectorize.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/MemorySSA.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/OptimizationDiagnosticInfo.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionInfo.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/RegionIterator.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.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/BinaryFormat/COFF.h projects/clang500-import/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h projects/clang500-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h projects/clang500-import/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h projects/clang500-import/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h projects/clang500-import/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/Types.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachinePassRegistry.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineValueType.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MacroFusion.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ValueTypes.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/Formatters.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSerializer.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeServerHandler.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.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/PDB.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h projects/clang500-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h projects/clang500-import/contrib/llvm/include/llvm/IR/Argument.h projects/clang500-import/contrib/llvm/include/llvm/IR/BasicBlock.h projects/clang500-import/contrib/llvm/include/llvm/IR/Constant.h projects/clang500-import/contrib/llvm/include/llvm/IR/Constants.h projects/clang500-import/contrib/llvm/include/llvm/IR/DerivedTypes.h projects/clang500-import/contrib/llvm/include/llvm/IR/Dominators.h projects/clang500-import/contrib/llvm/include/llvm/IR/Function.h projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalAlias.h projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalIFunc.h projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalIndirectSymbol.h projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalObject.h projects/clang500-import/contrib/llvm/include/llvm/IR/GlobalVariable.h projects/clang500-import/contrib/llvm/include/llvm/IR/InlineAsm.h projects/clang500-import/contrib/llvm/include/llvm/IR/InstrTypes.h projects/clang500-import/contrib/llvm/include/llvm/IR/Instruction.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/IntrinsicsWebAssembly.td projects/clang500-import/contrib/llvm/include/llvm/IR/LLVMContext.h projects/clang500-import/contrib/llvm/include/llvm/IR/LegacyPassNameParser.h projects/clang500-import/contrib/llvm/include/llvm/IR/Metadata.h projects/clang500-import/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h projects/clang500-import/contrib/llvm/include/llvm/IR/Operator.h projects/clang500-import/contrib/llvm/include/llvm/IR/PatternMatch.h projects/clang500-import/contrib/llvm/include/llvm/IR/Statepoint.h projects/clang500-import/contrib/llvm/include/llvm/IR/User.h projects/clang500-import/contrib/llvm/include/llvm/InitializePasses.h projects/clang500-import/contrib/llvm/include/llvm/LinkAllPasses.h projects/clang500-import/contrib/llvm/include/llvm/MC/MCAsmBackend.h projects/clang500-import/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h projects/clang500-import/contrib/llvm/include/llvm/Object/Archive.h projects/clang500-import/contrib/llvm/include/llvm/Object/COFF.h projects/clang500-import/contrib/llvm/include/llvm/Object/COFFImportFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/ELFObjectFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/IRObjectFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/IRSymtab.h projects/clang500-import/contrib/llvm/include/llvm/Object/MachOUniversal.h projects/clang500-import/contrib/llvm/include/llvm/Object/ObjectFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/SymbolicFile.h projects/clang500-import/contrib/llvm/include/llvm/Object/Wasm.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/DWARFEmitter.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/DWARFYAML.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/ObjectYAML.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h projects/clang500-import/contrib/llvm/include/llvm/ObjectYAML/YAML.h projects/clang500-import/contrib/llvm/include/llvm/Passes/PassBuilder.h projects/clang500-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProf.h projects/clang500-import/contrib/llvm/include/llvm/Support/Errno.h projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTree.h projects/clang500-import/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h projects/clang500-import/contrib/llvm/include/llvm/Support/TargetParser.h projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLParser.h projects/clang500-import/contrib/llvm/include/llvm/Support/YAMLTraits.h projects/clang500-import/contrib/llvm/include/llvm/Target/GenericOpcodes.td projects/clang500-import/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h projects/clang500-import/contrib/llvm/include/llvm/Target/TargetOpcodes.def projects/clang500-import/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/SampleProfile.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/OrderedInstructions.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/PredicateInfo.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h projects/clang500-import/contrib/llvm/include/llvm/Transforms/Vectorize.h projects/clang500-import/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp projects/clang500-import/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp projects/clang500-import/contrib/llvm/lib/Analysis/InlineCost.cpp projects/clang500-import/contrib/llvm/lib/Analysis/IteratedDominanceFrontier.cpp projects/clang500-import/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp projects/clang500-import/contrib/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp projects/clang500-import/contrib/llvm/lib/Analysis/RegionInfo.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/TypeBasedAliasAnalysis.cpp projects/clang500-import/contrib/llvm/lib/BinaryFormat/Magic.cpp 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/AsmPrinter/AsmPrinter.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h 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/LegalizerInfo.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/LiveRangeCalc.h projects/clang500-import/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/MacroFusion.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.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/LegalizeIntegerTypes.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/TargetPassConfig.cpp projects/clang500-import/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/Formatters.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeSerializer.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleList.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/Hash.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/HashTable.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/ModuleDebugStream.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NamedStreamMap.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumModules.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/PDB.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/UDTLayout.cpp projects/clang500-import/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp projects/clang500-import/contrib/llvm/lib/IR/Constants.cpp projects/clang500-import/contrib/llvm/lib/IR/Dominators.cpp projects/clang500-import/contrib/llvm/lib/IR/LLVMContext.cpp projects/clang500-import/contrib/llvm/lib/IR/LLVMContextImpl.h projects/clang500-import/contrib/llvm/lib/LTO/LTO.cpp projects/clang500-import/contrib/llvm/lib/MC/MCAssembler.cpp projects/clang500-import/contrib/llvm/lib/MC/WasmObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Object/COFFObjectFile.cpp projects/clang500-import/contrib/llvm/lib/Object/IRSymtab.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/COFFYAML.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/DWARFYAML.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/ObjectYAML.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp projects/clang500-import/contrib/llvm/lib/ObjectYAML/YAML.cpp projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp projects/clang500-import/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProf.cpp projects/clang500-import/contrib/llvm/lib/Support/AMDGPUCodeObjectMetadata.cpp projects/clang500-import/contrib/llvm/lib/Support/Host.cpp projects/clang500-import/contrib/llvm/lib/Support/MemoryBuffer.cpp projects/clang500-import/contrib/llvm/lib/Support/TargetParser.cpp projects/clang500-import/contrib/llvm/lib/Support/Unix/Path.inc projects/clang500-import/contrib/llvm/lib/Support/Unix/Process.inc projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp 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/AArch64MCInstLower.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp projects/clang500-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARM.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrThumb.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/ARMRegisterBankInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSchedule.td projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.h projects/clang500-import/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.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/MCTargetDesc/ARMFixupKinds.h projects/clang500-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPC.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/README.txt projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZ.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZFeatures.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.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/SystemZSubtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td projects/clang500-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td projects/clang500-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td 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/X86Subtarget.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/clang500-import/contrib/llvm/lib/Target/X86/X86TargetMachine.h projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroInstr.h projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp projects/clang500-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp projects/clang500-import/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.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/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/InstCombineSelect.cpp projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.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/SROA.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/OrderedInstructions.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Utils/PredicateInfo.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/Vectorize/LoopVectorize.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp projects/clang500-import/contrib/llvm/tools/bugpoint/ToolRunner.cpp projects/clang500-import/contrib/llvm/tools/clang/include/clang-c/Index.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/ASTStructuralEquivalence.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/NSAPI.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Visibility.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Driver.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/Format/Format.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h projects/clang500-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td projects/clang500-import/contrib/llvm/tools/clang/include/clang/module.modulemap projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/SourceManager.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/CGBuiltin.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.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/CodeGenAction.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp 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/CrossWindows.cpp 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/MipsLinux.cpp 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/NamespaceEndCommentsFixer.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/Sema.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.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/SemaDeclCXX.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaType.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/ASTReaderStmt.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp projects/clang500-import/contrib/llvm/tools/clang/tools/driver/driver.cpp projects/clang500-import/contrib/llvm/tools/llc/llc.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/Driver.h projects/clang500-import/contrib/llvm/tools/lld/COFF/MarkLive.cpp projects/clang500-import/contrib/llvm/tools/lld/COFF/Symbols.h projects/clang500-import/contrib/llvm/tools/lld/COFF/Writer.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/CMakeLists.txt projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/SymbolTable.h 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/Target.cpp projects/clang500-import/contrib/llvm/tools/lld/ELF/Target.h projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp projects/clang500-import/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/Event.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/SearchFilter.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSummary.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/DataFormatters/TypeSynthetic.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/File.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Host.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/MainLoopBase.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Socket.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/XML.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/ScriptInterpreter.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Symbol/DWARFCallFrameInfo.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Symbol/UnwindTable.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/ABI.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntime.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/InstrumentationRuntimeStopInfo.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Process.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/StopInfo.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/StructuredDataPlugin.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/SystemRuntime.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Thread.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadPlanPython.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/ThreadSpec.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/JSON.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-private-interfaces.h projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBCommunication.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBTarget.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBThread.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBThreadPlan.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBTraceOptions.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectLog.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Communication.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Disassembler.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Mangled.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Core/Module.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Host.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/netbsd/Host.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/openbsd/Host.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/Cocoa.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.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/GDBRemoteCommunicationServerLLGS.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.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/Symbol/DWARFCallFrameInfo.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/FuncUnwinders.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/UnwindTable.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/ABI.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/ObjCLanguageRuntime.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Platform.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Process.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Target.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/TargetList.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Target/ThreadSpec.cpp projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/JSON.cpp projects/clang500-import/contrib/llvm/tools/lldb/tools/lldb-server/Acceptor.h projects/clang500-import/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp projects/clang500-import/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp projects/clang500-import/contrib/llvm/tools/llvm-nm/llvm-nm.cpp projects/clang500-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp 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-readobj/COFFDumper.cpp projects/clang500-import/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp projects/clang500-import/contrib/llvm/tools/opt/opt.cpp projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenRegisters.h projects/clang500-import/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp projects/clang500-import/contrib/llvm/utils/TableGen/DAGISelMatcher.h projects/clang500-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp projects/clang500-import/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp projects/clang500-import/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp 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/liblldb/Makefile projects/clang500-import/lib/clang/libllvm/Makefile projects/clang500-import/lib/libclang_rt/profile/Makefile projects/clang500-import/usr.bin/clang/lld/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_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_allocator.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -160,7 +160,11 @@ struct QuarantineCallback { } void *Allocate(uptr size) { - return get_allocator().Allocate(cache_, size, 1); + void *res = get_allocator().Allocate(cache_, size, 1); + // TODO(alekseys): Consider making quarantine OOM-friendly. + if (UNLIKELY(!res)) + return DieOnFailure::OnOOM(); + return res; } void Deallocate(void *p) { @@ -524,8 +528,7 @@ struct Allocator { // Expects the chunk to already be marked as quarantined by using // AtomicallySetQuarantineFlagIfAllocated. - void QuarantineChunk(AsanChunk *m, void *ptr, BufferedStackTrace *stack, - AllocType alloc_type) { + void QuarantineChunk(AsanChunk *m, void *ptr, BufferedStackTrace *stack) { CHECK_EQ(m->chunk_state, CHUNK_QUARANTINE); CHECK_GE(m->alloc_tid, 0); if (SANITIZER_WORDSIZE == 64) // On 32-bits this resides in user area. @@ -603,7 +606,7 @@ struct Allocator { ReportNewDeleteSizeMismatch(p, delete_size, stack); } - QuarantineChunk(m, ptr, stack, alloc_type); + QuarantineChunk(m, ptr, stack); } void *Reallocate(void *old_ptr, uptr new_size, BufferedStackTrace *stack) { @@ -632,7 +635,7 @@ struct Allocator { } void *Calloc(uptr nmemb, uptr size, BufferedStackTrace *stack) { - if (CallocShouldReturnNullDueToOverflow(size, nmemb)) + if (CheckForCallocOverflow(size, nmemb)) return AsanAllocator::FailureHandler::OnBadRequest(); void *ptr = Allocate(nmemb * size, 8, stack, FROM_MALLOC, false); // If the memory comes from the secondary allocator no need to clear it Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -579,17 +579,6 @@ INTERCEPTOR(char*, __strdup, const char *s) { } #endif // ASAN_INTERCEPT___STRDUP -INTERCEPTOR(SIZE_T, wcslen, const wchar_t *s) { - void *ctx; - ASAN_INTERCEPTOR_ENTER(ctx, wcslen); - SIZE_T length = internal_wcslen(s); - if (!asan_init_is_running) { - ENSURE_ASAN_INITED(); - ASAN_READ_RANGE(ctx, s, (length + 1) * sizeof(wchar_t)); - } - return length; -} - INTERCEPTOR(char*, strncpy, char *to, const char *from, uptr size) { void *ctx; ASAN_INTERCEPTOR_ENTER(ctx, strncpy); @@ -722,7 +711,6 @@ void InitializeAsanInterceptors() { // Intercept str* functions. ASAN_INTERCEPT_FUNC(strcat); // NOLINT ASAN_INTERCEPT_FUNC(strcpy); // NOLINT - ASAN_INTERCEPT_FUNC(wcslen); ASAN_INTERCEPT_FUNC(strncat); ASAN_INTERCEPT_FUNC(strncpy); ASAN_INTERCEPT_FUNC(strdup); 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 Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_new_delete.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -25,23 +25,27 @@ // dllexport would normally do. We need to export them in order to make the // VS2015 dynamic CRT (MD) work. #if SANITIZER_WINDOWS -# define CXX_OPERATOR_ATTRIBUTE -# ifdef _WIN64 -# pragma comment(linker, "/export:??2@YAPEAX_K@Z") // operator new -# pragma comment(linker, "/export:??3@YAXPEAX@Z") // operator delete -# pragma comment(linker, "/export:??3@YAXPEAX_K@Z") // sized operator delete -# pragma comment(linker, "/export:??_U@YAPEAX_K@Z") // operator new[] -# pragma comment(linker, "/export:??_V@YAXPEAX@Z") // operator delete[] -# else -# pragma comment(linker, "/export:??2@YAPAXI@Z") // operator new -# pragma comment(linker, "/export:??3@YAXPAX@Z") // operator delete -# pragma comment(linker, "/export:??3@YAXPAXI@Z") // sized operator delete -# pragma comment(linker, "/export:??_U@YAPAXI@Z") // operator new[] -# pragma comment(linker, "/export:??_V@YAXPAX@Z") // operator delete[] -# endif +#define CXX_OPERATOR_ATTRIBUTE +#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 +COMMENT_EXPORT("??3@YAXPEAX@Z") // operator delete +COMMENT_EXPORT("??3@YAXPEAX_K@Z") // sized operator delete +COMMENT_EXPORT("??_U@YAPEAX_K@Z") // operator new[] +COMMENT_EXPORT("??_V@YAXPEAX@Z") // operator delete[] #else -# define CXX_OPERATOR_ATTRIBUTE INTERCEPTOR_ATTRIBUTE +COMMENT_EXPORT("??2@YAPAXI@Z") // operator new +COMMENT_EXPORT("??2@YAPAXIABUnothrow_t@std@@@Z") // operator new nothrow +COMMENT_EXPORT("??3@YAXPAX@Z") // operator delete +COMMENT_EXPORT("??3@YAXPAXI@Z") // sized operator delete +COMMENT_EXPORT("??_U@YAPAXI@Z") // operator new[] +COMMENT_EXPORT("??_V@YAXPAX@Z") // operator delete[] #endif +#undef COMMENT_EXPORT +#else +#define CXX_OPERATOR_ATTRIBUTE INTERCEPTOR_ATTRIBUTE +#endif using namespace __asan; // NOLINT @@ -63,12 +67,17 @@ struct nothrow_t {}; enum class align_val_t: size_t {}; } // namespace std -#define OPERATOR_NEW_BODY(type) \ +// TODO(alekseys): throw std::bad_alloc instead of dying on OOM. +#define OPERATOR_NEW_BODY(type, nothrow) \ GET_STACK_TRACE_MALLOC;\ - return asan_memalign(0, size, &stack, type); -#define OPERATOR_NEW_BODY_ALIGN(type) \ + void *res = asan_memalign(0, size, &stack, type);\ + if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ + return res; +#define OPERATOR_NEW_BODY_ALIGN(type, nothrow) \ GET_STACK_TRACE_MALLOC;\ - return asan_memalign((uptr)align, size, &stack, type); + void *res = asan_memalign((uptr)align, size, &stack, type);\ + if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ + return res; // On OS X it's not enough to just provide our own 'operator new' and // 'operator delete' implementations, because they're going to be in the @@ -79,40 +88,42 @@ enum class align_val_t: size_t {}; // OS X we need to intercept them using their mangled names. #if !SANITIZER_MAC CXX_OPERATOR_ATTRIBUTE -void *operator new(size_t size) { OPERATOR_NEW_BODY(FROM_NEW); } +void *operator new(size_t size) +{ OPERATOR_NEW_BODY(FROM_NEW, false /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE -void *operator new[](size_t size) { OPERATOR_NEW_BODY(FROM_NEW_BR); } +void *operator new[](size_t size) +{ OPERATOR_NEW_BODY(FROM_NEW_BR, false /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE void *operator new(size_t size, std::nothrow_t const&) -{ OPERATOR_NEW_BODY(FROM_NEW); } +{ OPERATOR_NEW_BODY(FROM_NEW, true /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE void *operator new[](size_t size, std::nothrow_t const&) -{ OPERATOR_NEW_BODY(FROM_NEW_BR); } +{ OPERATOR_NEW_BODY(FROM_NEW_BR, true /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE void *operator new(size_t size, std::align_val_t align) -{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW); } +{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW, false /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE void *operator new[](size_t size, std::align_val_t align) -{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR); } +{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR, false /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE void *operator new(size_t size, std::align_val_t align, std::nothrow_t const&) -{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW); } +{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW, true /*nothrow*/); } CXX_OPERATOR_ATTRIBUTE void *operator new[](size_t size, std::align_val_t align, std::nothrow_t const&) -{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR); } +{ OPERATOR_NEW_BODY_ALIGN(FROM_NEW_BR, true /*nothrow*/); } #else // SANITIZER_MAC INTERCEPTOR(void *, _Znwm, size_t size) { - OPERATOR_NEW_BODY(FROM_NEW); + OPERATOR_NEW_BODY(FROM_NEW, false /*nothrow*/); } INTERCEPTOR(void *, _Znam, size_t size) { - OPERATOR_NEW_BODY(FROM_NEW_BR); + OPERATOR_NEW_BODY(FROM_NEW_BR, false /*nothrow*/); } INTERCEPTOR(void *, _ZnwmRKSt9nothrow_t, size_t size, std::nothrow_t const&) { - OPERATOR_NEW_BODY(FROM_NEW); + OPERATOR_NEW_BODY(FROM_NEW, true /*nothrow*/); } INTERCEPTOR(void *, _ZnamRKSt9nothrow_t, size_t size, std::nothrow_t const&) { - OPERATOR_NEW_BODY(FROM_NEW_BR); + OPERATOR_NEW_BODY(FROM_NEW_BR, true /*nothrow*/); } #endif Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win_dll_thunk.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -85,6 +85,7 @@ INTERCEPT_LIBRARY_FUNCTION(strstr); INTERCEPT_LIBRARY_FUNCTION(strtok); INTERCEPT_LIBRARY_FUNCTION(strtol); INTERCEPT_LIBRARY_FUNCTION(wcslen); +INTERCEPT_LIBRARY_FUNCTION(wcsnlen); #ifdef _WIN64 INTERCEPT_LIBRARY_FUNCTION(__C_specific_handler); Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_allocator.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -74,7 +74,7 @@ void *Allocate(const StackTrace &stack, uptr size, upt size = 1; if (size > kMaxAllowedMallocSize) { Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", size); - return nullptr; + return Allocator::FailureHandler::OnBadRequest(); } void *p = allocator.Allocate(GetAllocatorCache(), size, alignment); // Do not rely on the allocator to clear the memory (it's slow). @@ -99,7 +99,7 @@ void *Reallocate(const StackTrace &stack, void *p, upt if (new_size > kMaxAllowedMallocSize) { Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", new_size); allocator.Deallocate(GetAllocatorCache(), p); - return nullptr; + return Allocator::FailureHandler::OnBadRequest(); } p = allocator.Reallocate(GetAllocatorCache(), p, new_size, alignment); RegisterAllocation(stack, p, new_size); @@ -134,6 +134,8 @@ void *lsan_realloc(void *p, uptr size, const StackTrac } void *lsan_calloc(uptr nmemb, uptr size, const StackTrace &stack) { + if (CheckForCallocOverflow(size, nmemb)) + return Allocator::FailureHandler::OnBadRequest(); size *= nmemb; return Allocate(stack, size, 1, true); } Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -70,7 +70,6 @@ INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) { CHECK(allocated < kCallocPoolSize); return mem; } - if (CallocShouldReturnNullDueToOverflow(size, nmemb)) return nullptr; ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; return lsan_calloc(nmemb, size, stack); @@ -199,34 +198,70 @@ INTERCEPTOR(int, mprobe, void *ptr) { } #endif // SANITIZER_INTERCEPT_MCHECK_MPROBE -#define OPERATOR_NEW_BODY \ - ENSURE_LSAN_INITED; \ - GET_STACK_TRACE_MALLOC; \ - return Allocate(stack, size, 1, kAlwaysClearMemory); -INTERCEPTOR_ATTRIBUTE -void *operator new(size_t size) { OPERATOR_NEW_BODY; } -INTERCEPTOR_ATTRIBUTE -void *operator new[](size_t size) { OPERATOR_NEW_BODY; } -INTERCEPTOR_ATTRIBUTE -void *operator new(size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } -INTERCEPTOR_ATTRIBUTE -void *operator new[](size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } +// TODO(alekseys): throw std::bad_alloc instead of dying on OOM. +#define OPERATOR_NEW_BODY(nothrow) \ + ENSURE_LSAN_INITED; \ + GET_STACK_TRACE_MALLOC; \ + void *res = Allocate(stack, size, 1, kAlwaysClearMemory);\ + if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ + return res; #define OPERATOR_DELETE_BODY \ ENSURE_LSAN_INITED; \ Deallocate(ptr); +// On OS X it's not enough to just provide our own 'operator new' and +// 'operator delete' implementations, because they're going to be in the runtime +// dylib, and the main executable will depend on both the runtime dylib and +// libstdc++, each of has its implementation of new and delete. +// To make sure that C++ allocation/deallocation operators are overridden on +// OS X we need to intercept them using their mangled names. +#if !SANITIZER_MAC + INTERCEPTOR_ATTRIBUTE +void *operator new(size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new[](size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new(size_t size, std::nothrow_t const&) +{ OPERATOR_NEW_BODY(true /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new[](size_t size, std::nothrow_t const&) +{ OPERATOR_NEW_BODY(true /*nothrow*/); } + +INTERCEPTOR_ATTRIBUTE void operator delete(void *ptr) NOEXCEPT { OPERATOR_DELETE_BODY; } INTERCEPTOR_ATTRIBUTE void operator delete[](void *ptr) NOEXCEPT { OPERATOR_DELETE_BODY; } INTERCEPTOR_ATTRIBUTE void operator delete(void *ptr, std::nothrow_t const&) { OPERATOR_DELETE_BODY; } INTERCEPTOR_ATTRIBUTE -void operator delete[](void *ptr, std::nothrow_t const &) { - OPERATOR_DELETE_BODY; -} +void operator delete[](void *ptr, std::nothrow_t const &) +{ OPERATOR_DELETE_BODY; } + +#else // SANITIZER_MAC + +INTERCEPTOR(void *, _Znwm, size_t size) +{ OPERATOR_NEW_BODY(false /*nothrow*/); } +INTERCEPTOR(void *, _Znam, size_t size) +{ OPERATOR_NEW_BODY(false /*nothrow*/); } +INTERCEPTOR(void *, _ZnwmRKSt9nothrow_t, size_t size, std::nothrow_t const&) +{ OPERATOR_NEW_BODY(true /*nothrow*/); } +INTERCEPTOR(void *, _ZnamRKSt9nothrow_t, size_t size, std::nothrow_t const&) +{ OPERATOR_NEW_BODY(true /*nothrow*/); } + +INTERCEPTOR(void, _ZdlPv, void *ptr) +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR(void, _ZdaPv, void *ptr) +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR(void, _ZdlPvRKSt9nothrow_t, void *ptr, std::nothrow_t const&) +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR(void, _ZdaPvRKSt9nothrow_t, void *ptr, std::nothrow_t const&) +{ OPERATOR_DELETE_BODY; } + +#endif // !SANITIZER_MAC + ///// Thread initialization and finalization. ///// Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_allocator.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -195,7 +195,7 @@ void MsanDeallocate(StackTrace *stack, void *p) { } void *MsanCalloc(StackTrace *stack, uptr nmemb, uptr size) { - if (CallocShouldReturnNullDueToOverflow(size, nmemb)) + if (CheckForCallocOverflow(size, nmemb)) return Allocator::FailureHandler::OnBadRequest(); return MsanReallocate(stack, nullptr, nmemb * size, sizeof(u64), true); } Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_interceptors.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -538,49 +538,6 @@ INTERCEPTOR(int, mbrtowc, wchar_t *dest, const char *s return res; } -INTERCEPTOR(SIZE_T, wcslen, const wchar_t *s) { - ENSURE_MSAN_INITED(); - SIZE_T res = REAL(wcslen)(s); - CHECK_UNPOISONED(s, sizeof(wchar_t) * (res + 1)); - return res; -} - -INTERCEPTOR(SIZE_T, wcsnlen, const wchar_t *s, SIZE_T n) { - ENSURE_MSAN_INITED(); - SIZE_T res = REAL(wcsnlen)(s, n); - CHECK_UNPOISONED(s, sizeof(wchar_t) * Min(res + 1, n)); - return res; -} - -// wchar_t *wcschr(const wchar_t *wcs, wchar_t wc); -INTERCEPTOR(wchar_t *, wcschr, void *s, wchar_t wc, void *ps) { - ENSURE_MSAN_INITED(); - wchar_t *res = REAL(wcschr)(s, wc, ps); - return res; -} - -// wchar_t *wcscpy(wchar_t *dest, const wchar_t *src); -INTERCEPTOR(wchar_t *, wcscpy, wchar_t *dest, const wchar_t *src) { - ENSURE_MSAN_INITED(); - GET_STORE_STACK_TRACE; - wchar_t *res = REAL(wcscpy)(dest, src); - CopyShadowAndOrigin(dest, src, sizeof(wchar_t) * (REAL(wcslen)(src) + 1), - &stack); - return res; -} - -INTERCEPTOR(wchar_t *, wcsncpy, wchar_t *dest, const wchar_t *src, - SIZE_T n) { // NOLINT - ENSURE_MSAN_INITED(); - GET_STORE_STACK_TRACE; - SIZE_T copy_size = REAL(wcsnlen)(src, n); - if (copy_size < n) copy_size++; // trailing \0 - wchar_t *res = REAL(wcsncpy)(dest, src, n); // NOLINT - CopyShadowAndOrigin(dest, src, copy_size * sizeof(wchar_t), &stack); - __msan_unpoison(dest + copy_size, (n - copy_size) * sizeof(wchar_t)); - return res; -} - // wchar_t *wmemcpy(wchar_t *dest, const wchar_t *src, SIZE_T n); INTERCEPTOR(wchar_t *, wmemcpy, wchar_t *dest, const wchar_t *src, SIZE_T n) { ENSURE_MSAN_INITED(); @@ -1344,11 +1301,11 @@ int OnExit() { return __msan_memcpy(to, from, size); \ } -#define COMMON_INTERCEPTOR_COPY_STRING(ctx, to, from, size) \ - do { \ - GET_STORE_STACK_TRACE; \ - CopyShadowAndOrigin(to, from, size, &stack); \ - __msan_unpoison(to + size, 1); \ +#define COMMON_INTERCEPTOR_COPY_STRING(ctx, to, from, size) \ + do { \ + GET_STORE_STACK_TRACE; \ + CopyShadowAndOrigin(to, from, size, &stack); \ + __msan_unpoison(to + size, 1); \ } while (false) #include "sanitizer_common/sanitizer_platform_interceptors.h" @@ -1421,6 +1378,35 @@ INTERCEPTOR(int, dl_iterate_phdr, dl_iterate_phdr_cb c cbdata.callback = callback; cbdata.data = data; int res = REAL(dl_iterate_phdr)(msan_dl_iterate_phdr_cb, (void *)&cbdata); + return res; +} + +// wchar_t *wcschr(const wchar_t *wcs, wchar_t wc); +INTERCEPTOR(wchar_t *, wcschr, void *s, wchar_t wc, void *ps) { + ENSURE_MSAN_INITED(); + wchar_t *res = REAL(wcschr)(s, wc, ps); + return res; +} + +// wchar_t *wcscpy(wchar_t *dest, const wchar_t *src); +INTERCEPTOR(wchar_t *, wcscpy, wchar_t *dest, const wchar_t *src) { + ENSURE_MSAN_INITED(); + GET_STORE_STACK_TRACE; + wchar_t *res = REAL(wcscpy)(dest, src); + CopyShadowAndOrigin(dest, src, sizeof(wchar_t) * (REAL(wcslen)(src) + 1), + &stack); + return res; +} + +INTERCEPTOR(wchar_t *, wcsncpy, wchar_t *dest, const wchar_t *src, + SIZE_T n) { // NOLINT + ENSURE_MSAN_INITED(); + GET_STORE_STACK_TRACE; + SIZE_T copy_size = REAL(wcsnlen)(src, n); + if (copy_size < n) copy_size++; // trailing \0 + wchar_t *res = REAL(wcsncpy)(dest, src, n); // NOLINT + CopyShadowAndOrigin(dest, src, copy_size * sizeof(wchar_t), &stack); + __msan_unpoison(dest + copy_size, (n - copy_size) * sizeof(wchar_t)); return res; } Modified: projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -14,6 +14,7 @@ #include "msan.h" #include "interception/interception.h" +#include "sanitizer_common/sanitizer_allocator.h" #if MSAN_REPLACE_OPERATORS_NEW_AND_DELETE @@ -27,18 +28,25 @@ namespace std { } // namespace std -#define OPERATOR_NEW_BODY \ +// TODO(alekseys): throw std::bad_alloc instead of dying on OOM. +#define OPERATOR_NEW_BODY(nothrow) \ GET_MALLOC_STACK_TRACE; \ - return MsanReallocate(&stack, 0, size, sizeof(u64), false) + void *res = MsanReallocate(&stack, 0, size, sizeof(u64), false);\ + if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ + return res INTERCEPTOR_ATTRIBUTE -void *operator new(size_t size) { OPERATOR_NEW_BODY; } +void *operator new(size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); } INTERCEPTOR_ATTRIBUTE -void *operator new[](size_t size) { OPERATOR_NEW_BODY; } +void *operator new[](size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); } INTERCEPTOR_ATTRIBUTE -void *operator new(size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } +void *operator new(size_t size, std::nothrow_t const&) { + OPERATOR_NEW_BODY(true /*nothrow*/); +} INTERCEPTOR_ATTRIBUTE -void *operator new[](size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } +void *operator new[](size_t size, std::nothrow_t const&) { + OPERATOR_NEW_BODY(true /*nothrow*/); +} #define OPERATOR_DELETE_BODY \ GET_MALLOC_STACK_TRACE; \ Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfiling.c Sun Jul 2 11:41:15 2017 (r320572) @@ -19,8 +19,6 @@ COMPILER_RT_WEAK uint64_t INSTR_PROF_RAW_VERSION_VAR = INSTR_PROF_RAW_VERSION; -COMPILER_RT_WEAK char INSTR_PROF_PROFILE_NAME_VAR[1] = {0}; - COMPILER_RT_VISIBILITY uint64_t __llvm_profile_get_magic(void) { return sizeof(void *) == sizeof(uint64_t) ? (INSTR_PROF_RAW_MAGIC_64) : (INSTR_PROF_RAW_MAGIC_32); Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingBuffer.c Sun Jul 2 11:41:15 2017 (r320572) @@ -45,15 +45,24 @@ uint64_t __llvm_profile_get_size_for_buffer_internal( (CountersEnd - CountersBegin) * sizeof(uint64_t) + NamesSize + Padding; } +COMPILER_RT_VISIBILITY +void initBufferWriter(ProfDataWriter *BufferWriter, char *Buffer) { + BufferWriter->Write = lprofBufferWriter; + BufferWriter->WriterCtx = Buffer; +} + COMPILER_RT_VISIBILITY int __llvm_profile_write_buffer(char *Buffer) { - return lprofWriteData(lprofBufferWriter, Buffer, 0); + ProfDataWriter BufferWriter; + initBufferWriter(&BufferWriter, Buffer); + return lprofWriteData(&BufferWriter, 0, 0); } COMPILER_RT_VISIBILITY int __llvm_profile_write_buffer_internal( char *Buffer, const __llvm_profile_data *DataBegin, const __llvm_profile_data *DataEnd, const uint64_t *CountersBegin, const uint64_t *CountersEnd, const char *NamesBegin, const char *NamesEnd) { - return lprofWriteDataImpl(lprofBufferWriter, Buffer, DataBegin, DataEnd, - CountersBegin, CountersEnd, 0, NamesBegin, - NamesEnd); + ProfDataWriter BufferWriter; + initBufferWriter(&BufferWriter, Buffer); + return lprofWriteDataImpl(&BufferWriter, DataBegin, DataEnd, CountersBegin, + CountersEnd, 0, NamesBegin, NamesEnd, 0); } Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingFile.c Sun Jul 2 11:41:15 2017 (r320572) @@ -91,24 +91,39 @@ static const char *getCurFilename(char *FilenameBuf); static unsigned doMerging() { return lprofCurFilename.MergePoolSize; } /* Return 1 if there is an error, otherwise return 0. */ -static uint32_t fileWriter(ProfDataIOVec *IOVecs, uint32_t NumIOVecs, - void **WriterCtx) { +static uint32_t fileWriter(ProfDataWriter *This, ProfDataIOVec *IOVecs, + uint32_t NumIOVecs) { uint32_t I; - FILE *File = (FILE *)*WriterCtx; + FILE *File = (FILE *)This->WriterCtx; for (I = 0; I < NumIOVecs; I++) { - if (fwrite(IOVecs[I].Data, IOVecs[I].ElmSize, IOVecs[I].NumElm, File) != - IOVecs[I].NumElm) - return 1; + if (IOVecs[I].Data) { + if (fwrite(IOVecs[I].Data, IOVecs[I].ElmSize, IOVecs[I].NumElm, File) != + IOVecs[I].NumElm) + return 1; + } else { + if (fseek(File, IOVecs[I].ElmSize * IOVecs[I].NumElm, SEEK_CUR) == -1) + return 1; + } } return 0; } +static void initFileWriter(ProfDataWriter *This, FILE *File) { + This->Write = fileWriter; + This->WriterCtx = File; +} + COMPILER_RT_VISIBILITY ProfBufferIO * lprofCreateBufferIOInternal(void *File, uint32_t BufferSz) { FreeHook = &free; DynamicBufferIOBuffer = (uint8_t *)calloc(BufferSz, 1); VPBufferSize = BufferSz; - return lprofCreateBufferIO(fileWriter, File); + ProfDataWriter *fileWriter = + (ProfDataWriter *)calloc(sizeof(ProfDataWriter), 1); + initFileWriter(fileWriter, File); + ProfBufferIO *IO = lprofCreateBufferIO(fileWriter); + IO->OwnFileWriter = 1; + return IO; } static void setupIOBuffer() { @@ -122,9 +137,10 @@ static void setupIOBuffer() { /* Read profile data in \c ProfileFile and merge with in-memory profile counters. Returns -1 if there is fatal error, otheriwse - 0 is returned. + 0 is returned. Returning 0 does not mean merge is actually + performed. If merge is actually done, *MergeDone is set to 1. */ -static int doProfileMerging(FILE *ProfileFile) { +static int doProfileMerging(FILE *ProfileFile, int *MergeDone) { uint64_t ProfileFileSize; char *ProfileBuffer; @@ -169,6 +185,8 @@ static int doProfileMerging(FILE *ProfileFile) { __llvm_profile_merge_from_buffer(ProfileBuffer, ProfileFileSize); (void)munmap(ProfileBuffer, ProfileFileSize); + *MergeDone = 1; + return 0; } @@ -190,7 +208,7 @@ static void createProfileDir(const char *Filename) { * dumper. With profile merging enabled, each executable as well as any of * its instrumented shared libraries dump profile data into their own data file. */ -static FILE *openFileForMerging(const char *ProfileFileName) { +static FILE *openFileForMerging(const char *ProfileFileName, int *MergeDone) { FILE *ProfileFile; int rc; @@ -199,15 +217,14 @@ static FILE *openFileForMerging(const char *ProfileFil if (!ProfileFile) return NULL; - rc = doProfileMerging(ProfileFile); - if (rc || COMPILER_RT_FTRUNCATE(ProfileFile, 0L) || + rc = doProfileMerging(ProfileFile, MergeDone); + if (rc || (!*MergeDone && COMPILER_RT_FTRUNCATE(ProfileFile, 0L)) || fseek(ProfileFile, 0L, SEEK_SET) == -1) { PROF_ERR("Profile Merging of file %s failed: %s\n", ProfileFileName, strerror(errno)); fclose(ProfileFile); return NULL; } - fseek(ProfileFile, 0L, SEEK_SET); return ProfileFile; } @@ -216,17 +233,20 @@ static int writeFile(const char *OutputName) { int RetVal; FILE *OutputFile; + int MergeDone = 0; if (!doMerging()) OutputFile = fopen(OutputName, "ab"); else - OutputFile = openFileForMerging(OutputName); + OutputFile = openFileForMerging(OutputName, &MergeDone); if (!OutputFile) return -1; FreeHook = &free; setupIOBuffer(); - RetVal = lprofWriteData(fileWriter, OutputFile, lprofGetVPDataReader()); + ProfDataWriter fileWriter; + initFileWriter(&fileWriter, OutputFile); + RetVal = lprofWriteData(&fileWriter, lprofGetVPDataReader(), MergeDone); fclose(OutputFile); return RetVal; Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h Sun Jul 2 11:41:15 2017 (r320572) @@ -48,17 +48,21 @@ typedef struct ProfDataIOVec { size_t NumElm; } ProfDataIOVec; -typedef uint32_t (*WriterCallback)(ProfDataIOVec *, uint32_t NumIOVecs, - void **WriterCtx); +struct ProfDataWriter; +typedef uint32_t (*WriterCallback)(struct ProfDataWriter *This, ProfDataIOVec *, + uint32_t NumIOVecs); +typedef struct ProfDataWriter { + WriterCallback Write; + void *WriterCtx; +} ProfDataWriter; + /*! * The data structure for buffered IO of profile data. */ typedef struct ProfBufferIO { - /* File handle. */ - void *File; - /* Low level IO callback. */ - WriterCallback FileWriter; + ProfDataWriter *FileWriter; + uint32_t OwnFileWriter; /* The start of the buffer. */ uint8_t *BufferStart; /* Total size of the buffer. */ @@ -73,7 +77,7 @@ ProfBufferIO *lprofCreateBufferIOInternal(void *File, /*! * This is the interface to create a handle for buffered IO. */ -ProfBufferIO *lprofCreateBufferIO(WriterCallback FileWriter, void *File); +ProfBufferIO *lprofCreateBufferIO(ProfDataWriter *FileWriter); /*! * The interface to destroy the bufferIO handle and reclaim @@ -96,8 +100,9 @@ int lprofBufferIOFlush(ProfBufferIO *BufferIO); /* The low level interface to write data into a buffer. It is used as the * callback by other high level writer methods such as buffered IO writer * and profile data writer. */ -uint32_t lprofBufferWriter(ProfDataIOVec *IOVecs, uint32_t NumIOVecs, - void **WriterCtx); +uint32_t lprofBufferWriter(ProfDataWriter *This, ProfDataIOVec *IOVecs, + uint32_t NumIOVecs); +void initBufferWriter(ProfDataWriter *BufferWriter, char *Buffer); struct ValueProfData; struct ValueProfRecord; @@ -133,15 +138,17 @@ typedef struct VPDataReaderType { uint32_t N); } VPDataReaderType; -int lprofWriteData(WriterCallback Writer, void *WriterCtx, - VPDataReaderType *VPDataReader); -int lprofWriteDataImpl(WriterCallback Writer, void *WriterCtx, +/* Write profile data to destinitation. If SkipNameDataWrite is set to 1, + the name data is already in destintation, we just skip over it. */ +int lprofWriteData(ProfDataWriter *Writer, VPDataReaderType *VPDataReader, + int SkipNameDataWrite); +int lprofWriteDataImpl(ProfDataWriter *Writer, const __llvm_profile_data *DataBegin, const __llvm_profile_data *DataEnd, const uint64_t *CountersBegin, const uint64_t *CountersEnd, VPDataReaderType *VPDataReader, const char *NamesBegin, - const char *NamesEnd); + const char *NamesEnd, int SkipNameDataWrite); /* Merge value profile data pointed to by SrcValueProfData into * in-memory profile counters pointed by to DstData. */ Copied: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c (from r320555, vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingNameVar.c Sun Jul 2 11:41:15 2017 (r320572, copy of r320555, vendor/compiler-rt/dist/lib/profile/InstrProfilingNameVar.c) @@ -0,0 +1,18 @@ +//===- InstrProfilingNameVar.c - profile name variable setup --------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "InstrProfiling.h" + +/* char __llvm_profile_filename[1] + * + * The runtime should only provide its own definition of this symbol when the + * user has not specified one. Set this up by moving the runtime's copy of this + * symbol to an object file within the archive. + */ +COMPILER_RT_WEAK char INSTR_PROF_PROFILE_NAME_VAR[1] = {0}; Modified: projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c Sun Jul 2 11:41:15 2017 (r320572) @@ -31,41 +31,44 @@ COMPILER_RT_VISIBILITY uint32_t VPBufferSize = 0; /* The buffer writer is reponsponsible in keeping writer state * across the call. */ -COMPILER_RT_VISIBILITY uint32_t lprofBufferWriter(ProfDataIOVec *IOVecs, - uint32_t NumIOVecs, - void **WriterCtx) { +COMPILER_RT_VISIBILITY uint32_t lprofBufferWriter(ProfDataWriter *This, + ProfDataIOVec *IOVecs, + uint32_t NumIOVecs) { uint32_t I; - char **Buffer = (char **)WriterCtx; + char **Buffer = (char **)&This->WriterCtx; for (I = 0; I < NumIOVecs; I++) { size_t Length = IOVecs[I].ElmSize * IOVecs[I].NumElm; - memcpy(*Buffer, IOVecs[I].Data, Length); + if (IOVecs[I].Data) + memcpy(*Buffer, IOVecs[I].Data, Length); *Buffer += Length; } return 0; } -static void llvmInitBufferIO(ProfBufferIO *BufferIO, WriterCallback FileWriter, - void *File, uint8_t *Buffer, uint32_t BufferSz) { - BufferIO->File = File; +static void llvmInitBufferIO(ProfBufferIO *BufferIO, ProfDataWriter *FileWriter, + uint8_t *Buffer, uint32_t BufferSz) { BufferIO->FileWriter = FileWriter; + BufferIO->OwnFileWriter = 0; BufferIO->BufferStart = Buffer; BufferIO->BufferSz = BufferSz; BufferIO->CurOffset = 0; } COMPILER_RT_VISIBILITY ProfBufferIO * -lprofCreateBufferIO(WriterCallback FileWriter, void *File) { +lprofCreateBufferIO(ProfDataWriter *FileWriter) { uint8_t *Buffer = DynamicBufferIOBuffer; uint32_t BufferSize = VPBufferSize; if (!Buffer) { Buffer = &BufferIOBuffer[0]; BufferSize = sizeof(BufferIOBuffer); } - llvmInitBufferIO(&TheBufferIO, FileWriter, File, Buffer, BufferSize); + llvmInitBufferIO(&TheBufferIO, FileWriter, Buffer, BufferSize); return &TheBufferIO; } COMPILER_RT_VISIBILITY void lprofDeleteBufferIO(ProfBufferIO *BufferIO) { + if (BufferIO->OwnFileWriter) + FreeHook(BufferIO->FileWriter); if (DynamicBufferIOBuffer) { FreeHook(DynamicBufferIOBuffer); DynamicBufferIOBuffer = 0; @@ -83,13 +86,16 @@ lprofBufferIOWrite(ProfBufferIO *BufferIO, const uint8 /* Special case, bypass the buffer completely. */ ProfDataIOVec IO[] = {{Data, sizeof(uint8_t), Size}}; if (Size > BufferIO->BufferSz) { - if (BufferIO->FileWriter(IO, 1, &BufferIO->File)) + if (BufferIO->FileWriter->Write(BufferIO->FileWriter, IO, 1)) return -1; } else { /* Write the data to buffer */ uint8_t *Buffer = BufferIO->BufferStart + BufferIO->CurOffset; - lprofBufferWriter(IO, 1, (void **)&Buffer); - BufferIO->CurOffset = Buffer - BufferIO->BufferStart; + ProfDataWriter BufferWriter; + initBufferWriter(&BufferWriter, (char *)Buffer); + lprofBufferWriter(&BufferWriter, IO, 1); + BufferIO->CurOffset = + (uint8_t *)BufferWriter.WriterCtx - BufferIO->BufferStart; } return 0; } @@ -98,7 +104,7 @@ COMPILER_RT_VISIBILITY int lprofBufferIOFlush(ProfBuff if (BufferIO->CurOffset) { ProfDataIOVec IO[] = { {BufferIO->BufferStart, sizeof(uint8_t), BufferIO->CurOffset}}; - if (BufferIO->FileWriter(IO, 1, &BufferIO->File)) + if (BufferIO->FileWriter->Write(BufferIO->FileWriter, IO, 1)) return -1; BufferIO->CurOffset = 0; } @@ -201,7 +207,7 @@ static int writeOneValueProfData(ProfBufferIO *BufferI return 0; } -static int writeValueProfData(WriterCallback Writer, void *WriterCtx, +static int writeValueProfData(ProfDataWriter *Writer, VPDataReaderType *VPDataReader, const __llvm_profile_data *DataBegin, const __llvm_profile_data *DataEnd) { @@ -211,7 +217,7 @@ static int writeValueProfData(WriterCallback Writer, v if (!VPDataReader) return 0; - BufferIO = lprofCreateBufferIO(Writer, WriterCtx); + BufferIO = lprofCreateBufferIO(Writer); for (DI = DataBegin; DI < DataEnd; DI++) { if (writeOneValueProfData(BufferIO, VPDataReader, DI)) @@ -225,9 +231,9 @@ static int writeValueProfData(WriterCallback Writer, v return 0; } -COMPILER_RT_VISIBILITY int lprofWriteData(WriterCallback Writer, - void *WriterCtx, - VPDataReaderType *VPDataReader) { +COMPILER_RT_VISIBILITY int lprofWriteData(ProfDataWriter *Writer, + VPDataReaderType *VPDataReader, + int SkipNameDataWrite) { /* Match logic in __llvm_profile_write_buffer(). */ const __llvm_profile_data *DataBegin = __llvm_profile_begin_data(); const __llvm_profile_data *DataEnd = __llvm_profile_end_data(); @@ -235,18 +241,17 @@ COMPILER_RT_VISIBILITY int lprofWriteData(WriterCallba const uint64_t *CountersEnd = __llvm_profile_end_counters(); const char *NamesBegin = __llvm_profile_begin_names(); const char *NamesEnd = __llvm_profile_end_names(); - return lprofWriteDataImpl(Writer, WriterCtx, DataBegin, DataEnd, - CountersBegin, CountersEnd, VPDataReader, - NamesBegin, NamesEnd); + return lprofWriteDataImpl(Writer, DataBegin, DataEnd, CountersBegin, + CountersEnd, VPDataReader, NamesBegin, NamesEnd, + SkipNameDataWrite); } COMPILER_RT_VISIBILITY int -lprofWriteDataImpl(WriterCallback Writer, void *WriterCtx, - const __llvm_profile_data *DataBegin, +lprofWriteDataImpl(ProfDataWriter *Writer, const __llvm_profile_data *DataBegin, const __llvm_profile_data *DataEnd, const uint64_t *CountersBegin, const uint64_t *CountersEnd, VPDataReaderType *VPDataReader, const char *NamesBegin, - const char *NamesEnd) { + const char *NamesEnd, int SkipNameDataWrite) { /* Calculate size of sections. */ const uint64_t DataSize = __llvm_profile_get_data_size(DataBegin, DataEnd); @@ -268,14 +273,14 @@ lprofWriteDataImpl(WriterCallback Writer, void *Writer #include "InstrProfData.inc" /* Write the data. */ - ProfDataIOVec IOVec[] = {{&Header, sizeof(__llvm_profile_header), 1}, - {DataBegin, sizeof(__llvm_profile_data), DataSize}, - {CountersBegin, sizeof(uint64_t), CountersSize}, - {NamesBegin, sizeof(uint8_t), NamesSize}, - {Zeroes, sizeof(uint8_t), Padding}}; - if (Writer(IOVec, sizeof(IOVec) / sizeof(*IOVec), &WriterCtx)) + ProfDataIOVec IOVec[] = { + {&Header, sizeof(__llvm_profile_header), 1}, + {DataBegin, sizeof(__llvm_profile_data), DataSize}, + {CountersBegin, sizeof(uint64_t), CountersSize}, + {SkipNameDataWrite ? NULL : NamesBegin, sizeof(uint8_t), NamesSize}, + {Zeroes, sizeof(uint8_t), Padding}}; + if (Writer->Write(Writer, IOVec, sizeof(IOVec) / sizeof(*IOVec))) return -1; - return writeValueProfData(Writer, WriterCtx, VPDataReader, DataBegin, - DataEnd); + return writeValueProfData(Writer, VPDataReader, DataBegin, DataEnd); } Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc Sun Jul 2 11:41:15 2017 (r320572) @@ -160,7 +160,7 @@ void *InternalRealloc(void *addr, uptr size, InternalA } void *InternalCalloc(uptr count, uptr size, InternalAllocatorCache *cache) { - if (CallocShouldReturnNullDueToOverflow(count, size)) + if (CheckForCallocOverflow(count, size)) return InternalAllocator::FailureHandler::OnBadRequest(); void *p = InternalAlloc(count * size, cache); if (p) internal_memset(p, 0, count * size); @@ -202,7 +202,7 @@ void SetLowLevelAllocateCallback(LowLevelAllocateCallb low_level_alloc_callback = callback; } -bool CallocShouldReturnNullDueToOverflow(uptr size, uptr n) { +bool CheckForCallocOverflow(uptr size, uptr n) { if (!size) return false; uptr max = (uptr)-1L; return (max / size) < n; @@ -246,11 +246,11 @@ void *ReturnNullOrDieOnFailure::OnOOM() { ReportAllocatorCannotReturnNull(); } -void *DieOnFailure::OnBadRequest() { +void NORETURN *DieOnFailure::OnBadRequest() { ReportAllocatorCannotReturnNull(); } -void *DieOnFailure::OnOOM() { +void NORETURN *DieOnFailure::OnOOM() { atomic_store_relaxed(&allocator_out_of_memory, 1); ReportAllocatorCannotReturnNull(); } Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h Sun Jul 2 11:41:15 2017 (r320572) @@ -39,8 +39,8 @@ struct ReturnNullOrDieOnFailure { }; // Always dies on the failure. struct DieOnFailure { - static void *OnBadRequest(); - static void *OnOOM(); + static void NORETURN *OnBadRequest(); + static void NORETURN *OnOOM(); }; // Returns true if allocator detected OOM condition. Can be used to avoid memory @@ -56,8 +56,10 @@ struct NoOpMapUnmapCallback { // Callback type for iterating over chunks. typedef void (*ForEachChunkCallback)(uptr chunk, void *arg); -// Returns true if calloc(size, n) should return 0 due to overflow in size*n. -bool CallocShouldReturnNullDueToOverflow(uptr size, uptr n); +// Returns true if calloc(size, n) call overflows on size*n calculation. +// The caller should "return POLICY::OnBadRequest();" where POLICY is the +// current allocator failure handling policy. +bool CheckForCallocOverflow(uptr size, uptr n); #include "sanitizer_allocator_size_class_map.h" #include "sanitizer_allocator_stats.h" Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h ============================================================================== --- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h Sun Jul 2 08:52:08 2017 (r320571) +++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h Sun Jul 2 11:41:15 2017 (r320572) @@ -46,8 +46,10 @@ struct SizeClassAllocator64LocalCache { CHECK_NE(class_id, 0UL); CHECK_LT(class_id, kNumClasses); PerClass *c = &per_class_[class_id]; - if (UNLIKELY(c->count == 0)) - Refill(c, allocator, class_id); + if (UNLIKELY(c->count == 0)) { + if (UNLIKELY(!Refill(c, allocator, class_id))) + return nullptr; + } stats_.Add(AllocatorStatAllocated, c->class_size); CHECK_GT(c->count, 0); CompactPtrT chunk = c->chunks[--c->count]; @@ -101,13 +103,15 @@ struct SizeClassAllocator64LocalCache { } } - NOINLINE void Refill(PerClass *c, SizeClassAllocator *allocator, + NOINLINE bool Refill(PerClass *c, SizeClassAllocator *allocator, uptr class_id) { InitCache(); uptr num_requested_chunks = c->max_count / 2; - allocator->GetFromAllocator(&stats_, class_id, c->chunks, - num_requested_chunks); + if (UNLIKELY(!allocator->GetFromAllocator(&stats_, class_id, c->chunks, + num_requested_chunks))) + return false; c->count = num_requested_chunks; + return true; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707021141.v62BfGks071084>