svn commit: r319164 - in projects/clang500-import: contrib/compiler-rt/lib/asan contrib/compiler-rt/lib/builtins contrib/compiler-rt/lib/builtins/arm contrib/compiler-rt/lib/lsan contrib/compiler-r...
Dimitry Andric
dim at FreeBSD.org
Mon May 29 22:09:31 UTC 2017
Author: dim
Date: Mon May 29 22:09:23 2017
New Revision: 319164
URL: https://svnweb.freebsd.org/changeset/base/319164
Log:
Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and update
build glue.
Added:
projects/clang500-import/contrib/libc++/include/experimental/coroutine
- copied unchanged from r319151, vendor/libc++/dist/include/experimental/coroutine
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
- copied unchanged from r319151, vendor/llvm/dist/include/llvm/CodeGen/GlobalISel/Localizer.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
- copied unchanged from r319151, vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHashAttributes.def
- copied unchanged from r319151, vendor/llvm/dist/lib/CodeGen/AsmPrinter/DIEHashAttributes.def
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp
- copied unchanged from r319151, vendor/llvm/dist/lib/CodeGen/GlobalISel/Localizer.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
- copied unchanged from r319151, vendor/llvm/dist/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
projects/clang500-import/contrib/llvm/lib/Target/Nios2/
- copied from r319151, vendor/llvm/dist/lib/Target/Nios2/
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp
- copied unchanged from r319151, vendor/llvm/dist/lib/Transforms/Scalar/GVNSink.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp
- copied unchanged from r319151, vendor/clang/dist/lib/Driver/ToolChains/BareMetal.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h
- copied unchanged from r319151, vendor/clang/dist/lib/Driver/ToolChains/BareMetal.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqintrin.h
- copied unchanged from r319151, vendor/clang/dist/lib/Headers/avx512vpopcntdqintrin.h
projects/clang500-import/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp
- copied unchanged from r319151, vendor/llvm/dist/utils/TableGen/X86FoldTablesEmitter.cpp
Deleted:
projects/clang500-import/contrib/llvm/lib/LibDriver/
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorWriteRes.td
Modified:
projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc
projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc
projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S
projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h
projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c
projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c
projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp
projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h
projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
projects/clang500-import/contrib/libc++/include/__config
projects/clang500-import/contrib/libc++/include/__threading_support
projects/clang500-import/contrib/libc++/include/algorithm
projects/clang500-import/contrib/libc++/include/experimental/__config
projects/clang500-import/contrib/libc++/include/iterator
projects/clang500-import/contrib/libc++/include/memory
projects/clang500-import/contrib/libc++/include/module.modulemap
projects/clang500-import/contrib/llvm/include/llvm/ADT/Triple.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/LoopPass.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
projects/clang500-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/AtomicExpandUtils.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/DIE.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/FaultMaps.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveInterval.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveIntervalUnion.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineDominators.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineInstr.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/MachineValueType.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h
projects/clang500-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.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/TypeStreamMerger.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h
projects/clang500-import/contrib/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Attributes.h
projects/clang500-import/contrib/llvm/include/llvm/IR/BasicBlock.h
projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicInst.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Intrinsics.td
projects/clang500-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
projects/clang500-import/contrib/llvm/include/llvm/IR/Metadata.h
projects/clang500-import/contrib/llvm/include/llvm/IR/Module.h
projects/clang500-import/contrib/llvm/include/llvm/InitializePasses.h
projects/clang500-import/contrib/llvm/include/llvm/LTO/Config.h
projects/clang500-import/contrib/llvm/include/llvm/Object/Binary.h
projects/clang500-import/contrib/llvm/include/llvm/Object/COFF.h
projects/clang500-import/contrib/llvm/include/llvm/Object/ELFObjectFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/MachO.h
projects/clang500-import/contrib/llvm/include/llvm/Object/ObjectFile.h
projects/clang500-import/contrib/llvm/include/llvm/Object/RelocVisitor.h
projects/clang500-import/contrib/llvm/include/llvm/Object/Wasm.h
projects/clang500-import/contrib/llvm/include/llvm/Option/OptTable.h
projects/clang500-import/contrib/llvm/include/llvm/ProfileData/InstrProf.h
projects/clang500-import/contrib/llvm/include/llvm/TableGen/Record.h
projects/clang500-import/contrib/llvm/include/llvm/Target/TargetLowering.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h
projects/clang500-import/contrib/llvm/include/llvm/Transforms/Utils/Local.h
projects/clang500-import/contrib/llvm/lib/Analysis/ConstantFolding.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/Lint.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/LoopPass.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/Analysis/ValueTracking.cpp
projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
projects/clang500-import/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.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/DIEHash.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
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/DwarfDebug.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
projects/clang500-import/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/BranchCoalescing.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/BranchFolding.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/BranchFolding.h
projects/clang500-import/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/FuncletLayout.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/GlobalMerge.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/IfConversion.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LexicalScopes.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCSE.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCombiner.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineLICM.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineOutliner.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineScheduler.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineSink.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/MachineVerifier.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/PHIElimination.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SafeStack.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.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/LegalizeDAG.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SlotIndexes.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/SpillPlacement.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/StackColoring.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/StackProtector.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/TailDuplication.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/TailDuplicator.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
projects/clang500-import/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeSerializer.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.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/MSF/MappedBlockStream.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp
projects/clang500-import/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
projects/clang500-import/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp
projects/clang500-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
projects/clang500-import/contrib/llvm/lib/IR/AttributeImpl.h
projects/clang500-import/contrib/llvm/lib/IR/Attributes.cpp
projects/clang500-import/contrib/llvm/lib/IR/BasicBlock.cpp
projects/clang500-import/contrib/llvm/lib/IR/DebugLoc.cpp
projects/clang500-import/contrib/llvm/lib/IR/Instructions.cpp
projects/clang500-import/contrib/llvm/lib/IR/IntrinsicInst.cpp
projects/clang500-import/contrib/llvm/lib/IR/Module.cpp
projects/clang500-import/contrib/llvm/lib/IR/Verifier.cpp
projects/clang500-import/contrib/llvm/lib/LTO/LTO.cpp
projects/clang500-import/contrib/llvm/lib/LTO/LTOBackend.cpp
projects/clang500-import/contrib/llvm/lib/Linker/IRMover.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/MachOObjectFile.cpp
projects/clang500-import/contrib/llvm/lib/Object/WasmObjectFile.cpp
projects/clang500-import/contrib/llvm/lib/Option/OptTable.cpp
projects/clang500-import/contrib/llvm/lib/Passes/PassBuilder.cpp
projects/clang500-import/contrib/llvm/lib/ProfileData/InstrProf.cpp
projects/clang500-import/contrib/llvm/lib/Support/APInt.cpp
projects/clang500-import/contrib/llvm/lib/Support/BinaryStreamReader.cpp
projects/clang500-import/contrib/llvm/lib/Support/ConvertUTF.cpp
projects/clang500-import/contrib/llvm/lib/Support/DebugCounter.cpp
projects/clang500-import/contrib/llvm/lib/Support/DynamicLibrary.cpp
projects/clang500-import/contrib/llvm/lib/Support/GraphWriter.cpp
projects/clang500-import/contrib/llvm/lib/Support/Host.cpp
projects/clang500-import/contrib/llvm/lib/Support/Path.cpp
projects/clang500-import/contrib/llvm/lib/Support/Triple.cpp
projects/clang500-import/contrib/llvm/lib/Support/YAMLParser.cpp
projects/clang500-import/contrib/llvm/lib/TableGen/Record.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkorDetails.td
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
projects/clang500-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIDefines.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td
projects/clang500-import/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMCallLowering.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMSchedule.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td
projects/clang500-import/contrib/llvm/lib/Target/ARM/ARMScheduleSwift.td
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/Thumb1FrameLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/AVR/AVRInstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/BPF/BPFISelLowering.h
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h
projects/clang500-import/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430.td
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp
projects/clang500-import/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h
projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp
projects/clang500-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZExpandPseudo.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
projects/clang500-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp
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/X86InstrArithmetic.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrFMA.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrFormats.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrInfo.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrMMX.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td
projects/clang500-import/contrib/llvm/lib/Target/X86/X86InstrXOP.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/X86LegalizerInfo.h
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/Transforms/Coroutines/CoroCleanup.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroEarly.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroElide.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GVN.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/Local.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
projects/clang500-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
projects/clang500-import/contrib/llvm/tools/clang/include/clang-c/Index.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/Expr.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/TemplateKinds.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Basic/XRayLists.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td
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/CompilerInvocation.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h
projects/clang500-import/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h
projects/clang500-import/contrib/llvm/tools/clang/lib/AST/DeclBase.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/StmtCXX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Basic/Module.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/Basic/XRayLists.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/Driver.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.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/TokenAnnotator.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.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/FrontendAction.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/altivec.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Headers/immintrin.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/CoroutineStmtBuilder.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h
projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
projects/clang500-import/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp
projects/clang500-import/contrib/llvm/tools/clang/tools/driver/driver.cpp
projects/clang500-import/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp
projects/clang500-import/contrib/llvm/tools/lld/COFF/ICF.cpp
projects/clang500-import/contrib/llvm/tools/lld/COFF/InputFiles.cpp
projects/clang500-import/contrib/llvm/tools/lld/COFF/InputFiles.h
projects/clang500-import/contrib/llvm/tools/lld/COFF/MarkLive.cpp
projects/clang500-import/contrib/llvm/tools/lld/COFF/PDB.cpp
projects/clang500-import/contrib/llvm/tools/lld/COFF/Symbols.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/Config.h
projects/clang500-import/contrib/llvm/tools/lld/ELF/Driver.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/ICF.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/InputSection.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/InputSection.h
projects/clang500-import/contrib/llvm/tools/lld/ELF/LTO.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/LinkerScript.h
projects/clang500-import/contrib/llvm/tools/lld/ELF/MapFile.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/Options.td
projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/OutputSections.h
projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/SyntheticSections.h
projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.cpp
projects/clang500-import/contrib/llvm/tools/lld/ELF/Writer.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/API/SBTrace.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredData.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/StructuredDataImpl.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Core/TraceOptions.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/Editline.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Target/Process.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/Utility/StringExtractor.h
projects/clang500-import/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBProcess.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBStructuredData.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBThread.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/API/SBTrace.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Core/StructuredData.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Host/common/Editline.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Process.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Target/Thread.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractor.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp
projects/clang500-import/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.h
projects/clang500-import/contrib/llvm/tools/llvm-nm/llvm-nm.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/PrettyClassLayoutGraphicalDumper.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/YAMLOutputStyle.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
projects/clang500-import/contrib/llvm/tools/llvm-pdbdump/llvm-pdbdump.h
projects/clang500-import/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp
projects/clang500-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/TableGen.cpp
projects/clang500-import/contrib/llvm/utils/TableGen/TableGenBackends.h
projects/clang500-import/lib/clang/headers/Makefile
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/libclang/Makefile
projects/clang500-import/lib/clang/libllvm/Makefile
projects/clang500-import/lib/libc++/Makefile
projects/clang500-import/usr.bin/clang/llvm-tblgen/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_interceptors.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_interceptors.cc Mon May 29 22:09:23 2017 (r319164)
@@ -357,28 +357,22 @@ DEFINE_REAL_PTHREAD_FUNCTIONS
#if SANITIZER_ANDROID
INTERCEPTOR(void*, bsd_signal, int signum, void *handler) {
- if (!IsHandledDeadlySignal(signum) ||
- common_flags()->allow_user_segv_handler) {
+ if (GetHandleSignalMode(signum) != kHandleSignalExclusive)
return REAL(bsd_signal)(signum, handler);
- }
return 0;
}
#endif
INTERCEPTOR(void*, signal, int signum, void *handler) {
- if (!IsHandledDeadlySignal(signum) ||
- common_flags()->allow_user_segv_handler) {
+ if (GetHandleSignalMode(signum) != kHandleSignalExclusive)
return REAL(signal)(signum, handler);
- }
return nullptr;
}
INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,
struct sigaction *oldact) {
- if (!IsHandledDeadlySignal(signum) ||
- common_flags()->allow_user_segv_handler) {
+ if (GetHandleSignalMode(signum) != kHandleSignalExclusive)
return REAL(sigaction)(signum, act, oldact);
- }
return 0;
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/asan/asan_win.cc Mon May 29 22:09:23 2017 (r319164)
@@ -80,7 +80,7 @@ static long WINAPI SEHHandler(EXCEPTION_
INTERCEPTOR_WINAPI(LPTOP_LEVEL_EXCEPTION_FILTER, SetUnhandledExceptionFilter,
LPTOP_LEVEL_EXCEPTION_FILTER ExceptionFilter) {
CHECK(REAL(SetUnhandledExceptionFilter));
- if (ExceptionFilter == &SEHHandler || common_flags()->allow_user_segv_handler)
+ if (ExceptionFilter == &SEHHandler)
return REAL(SetUnhandledExceptionFilter)(ExceptionFilter);
// We record the user provided exception handler to be called for all the
// exceptions unhandled by asan.
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/README.txt Mon May 29 22:09:23 2017 (r319164)
@@ -57,8 +57,8 @@ si_int __popcountsi2(si_int a); // bit
si_int __popcountdi2(di_int a); // bit population
si_int __popcountti2(ti_int a); // bit population
-uint32_t __bswapsi2(uint32_t a); // a byteswapped, arm/mips only
-uint64_t __bswapdi2(uint64_t a); // a byteswapped, arm/mips only
+uint32_t __bswapsi2(uint32_t a); // a byteswapped
+uint64_t __bswapdi2(uint64_t a); // a byteswapped
// Integral arithmetic
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S Mon May 29 22:09:23 2017 (r319164)
@@ -48,7 +48,12 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmp
// NaN has been ruled out, so __aeabi_cdcmple can't trap
bne __aeabi_cdcmple
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+ mov ip, #APSR_C
+ msr APSR_nzcvq, ip
+#else
msr CPSR_f, #APSR_C
+#endif
JMP(lr)
#endif
END_COMPILERRT_FUNCTION(__aeabi_cdcmpeq)
@@ -95,17 +100,23 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmp
lsls r0, r0, #31
pop {r0-r3, pc}
#else
+ ITT(eq)
moveq ip, #0
beq 1f
ldm sp, {r0-r3}
bl __aeabi_dcmpeq
cmp r0, #1
+ ITE(eq)
moveq ip, #(APSR_C | APSR_Z)
movne ip, #(APSR_C)
1:
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+ msr APSR_nzcvq, ip
+#else
msr CPSR_f, ip
+#endif
pop {r0-r3}
POP_PC()
#endif
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S Mon May 29 22:09:23 2017 (r319164)
@@ -48,7 +48,12 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp
// NaN has been ruled out, so __aeabi_cfcmple can't trap
bne __aeabi_cfcmple
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+ mov ip, #APSR_C
+ msr APSR_nzcvq, ip
+#else
msr CPSR_f, #APSR_C
+#endif
JMP(lr)
#endif
END_COMPILERRT_FUNCTION(__aeabi_cfcmpeq)
@@ -95,17 +100,23 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmp
lsls r0, r0, #31
pop {r0-r3, pc}
#else
+ ITT(eq)
moveq ip, #0
beq 1f
ldm sp, {r0-r3}
bl __aeabi_fcmpeq
cmp r0, #1
+ ITE(eq)
moveq ip, #(APSR_C | APSR_Z)
movne ip, #(APSR_C)
1:
+#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
+ msr APSR_nzcvq, ip
+#else
msr CPSR_f, ip
+#endif
pop {r0-r3}
POP_PC()
#endif
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqdf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__eqdf2vfp)
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(eq)
moveq r0, #1 // set result register to 1 if equal
movne r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/eqsf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2vfp)
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(eq)
moveq r0, #1 // set result register to 1 if equal
movne r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gedf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gedf2vfp)
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(ge)
movge r0, #1 // set result register to 1 if greater than or equal
movlt r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gesf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gesf2vfp)
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(ge)
movge r0, #1 // set result register to 1 if greater than or equal
movlt r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtdf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gtdf2vfp)
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(gt)
movgt r0, #1 // set result register to 1 if equal
movle r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/gtsf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__gtsf2vfp)
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(gt)
movgt r0, #1 // set result register to 1 if equal
movle r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ledf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__ledf2vfp)
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(ls)
movls r0, #1 // set result register to 1 if equal
movhi r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/lesf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__lesf2vfp)
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(ls)
movls r0, #1 // set result register to 1 if equal
movhi r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltdf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__ltdf2vfp)
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(mi)
movmi r0, #1 // set result register to 1 if equal
movpl r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/ltsf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__ltsf2vfp)
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(mi)
movmi r0, #1 // set result register to 1 if equal
movpl r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nedf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__nedf2vfp)
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(ne)
movne r0, #1 // set result register to 0 if unequal
moveq r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/nesf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__nesf2vfp)
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(ne)
movne r0, #1 // set result register to 1 if unequal
moveq r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unorddf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__unorddf2vfp
vcmp.f64 d6, d7
#endif
vmrs apsr_nzcv, fpscr
+ ITE(vs)
movvs r0, #1 // set result register to 1 if "overflow" (any NaNs)
movvc r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/arm/unordsf2vfp.S Mon May 29 22:09:23 2017 (r319164)
@@ -27,6 +27,7 @@ DEFINE_COMPILERRT_FUNCTION(__unordsf2vfp
vcmp.f32 s14, s15
#endif
vmrs apsr_nzcv, fpscr
+ ITE(vs)
movvs r0, #1 // set result register to 1 if "overflow" (any NaNs)
movvc r0, #0
bx lr
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/assembly.h Mon May 29 22:09:23 2017 (r319164)
@@ -115,10 +115,12 @@
#if defined(USE_THUMB_2)
#define IT(cond) it cond
#define ITT(cond) itt cond
+#define ITE(cond) ite cond
#define WIDE(op) op.w
#else
#define IT(cond)
#define ITT(cond)
+#define ITE(cond)
#define WIDE(op) op
#endif
#endif /* defined(__arm__) */
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapdi2.c Mon May 29 22:09:23 2017 (r319164)
@@ -14,15 +14,14 @@
#include "int_lib.h"
-COMPILER_RT_ABI uint64_t
-__bswapdi2 (uint64_t u)
-{
- return ((((u) & 0xff00000000000000ULL) >> 56)
- | (((u) & 0x00ff000000000000ULL) >> 40)
- | (((u) & 0x0000ff0000000000ULL) >> 24)
- | (((u) & 0x000000ff00000000ULL) >> 8)
- | (((u) & 0x00000000ff000000ULL) << 8)
- | (((u) & 0x0000000000ff0000ULL) << 24)
- | (((u) & 0x000000000000ff00ULL) << 40)
- | (((u) & 0x00000000000000ffULL) << 56));
+COMPILER_RT_ABI uint64_t __bswapdi2(uint64_t u) {
+ return (
+ (((u)&0xff00000000000000ULL) >> 56) |
+ (((u)&0x00ff000000000000ULL) >> 40) |
+ (((u)&0x0000ff0000000000ULL) >> 24) |
+ (((u)&0x000000ff00000000ULL) >> 8) |
+ (((u)&0x00000000ff000000ULL) << 8) |
+ (((u)&0x0000000000ff0000ULL) << 24) |
+ (((u)&0x000000000000ff00ULL) << 40) |
+ (((u)&0x00000000000000ffULL) << 56));
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/builtins/bswapsi2.c Mon May 29 22:09:23 2017 (r319164)
@@ -14,12 +14,10 @@
#include "int_lib.h"
-COMPILER_RT_ABI uint32_t
-__bswapsi2 (uint32_t u)
-{
-
- return ((((u) & 0xff000000) >> 24)
- | (((u) & 0x00ff0000) >> 8)
- | (((u) & 0x0000ff00) << 8)
- | (((u) & 0x000000ff) << 24));
+COMPILER_RT_ABI uint32_t __bswapsi2(uint32_t u) {
+ return (
+ (((u)&0xff000000) >> 24) |
+ (((u)&0x00ff0000) >> 8) |
+ (((u)&0x0000ff00) << 8) |
+ (((u)&0x000000ff) << 24));
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common.cc Mon May 29 22:09:23 2017 (r319164)
@@ -265,19 +265,21 @@ static void ProcessThreads(SuspendedThre
}
if (flags()->use_tls) {
- LOG_THREADS("TLS at %p-%p.\n", tls_begin, tls_end);
- if (cache_begin == cache_end) {
- ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
- } else {
- // Because LSan should not be loaded with dlopen(), we can assume
- // that allocator cache will be part of static TLS image.
- CHECK_LE(tls_begin, cache_begin);
- CHECK_GE(tls_end, cache_end);
- if (tls_begin < cache_begin)
- ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
- kReachable);
- if (tls_end > cache_end)
- ScanRangeForPointers(cache_end, tls_end, frontier, "TLS", kReachable);
+ if (tls_begin) {
+ LOG_THREADS("TLS at %p-%p.\n", tls_begin, tls_end);
+ // If the tls and cache ranges don't overlap, scan full tls range,
+ // otherwise, only scan the non-overlapping portions
+ if (cache_begin == cache_end || tls_end < cache_begin ||
+ tls_begin > cache_end) {
+ ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
+ } else {
+ if (tls_begin < cache_begin)
+ ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
+ kReachable);
+ if (tls_end > cache_end)
+ ScanRangeForPointers(cache_end, tls_end, frontier, "TLS",
+ kReachable);
+ }
}
if (dtls && !DTLSInDestruction(dtls)) {
for (uptr j = 0; j < dtls->dtv_size; ++j) {
Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc Mon May 29 22:09:23 2017 (r319164)
@@ -91,12 +91,7 @@ LoadedModule *GetLinker() { return nullp
// Required on Linux for initialization of TLS behavior, but should not be
// required on Darwin.
-void InitializePlatformSpecificModules() {
- if (flags()->use_tls) {
- Report("use_tls=1 is not supported on Darwin.\n");
- Die();
- }
-}
+void InitializePlatformSpecificModules() {}
// Scans global variables for heap pointers.
void ProcessGlobalRegions(Frontier *frontier) {
Modified: projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/lsan/lsan_flags.inc Mon May 29 22:09:23 2017 (r319164)
@@ -30,7 +30,7 @@ LSAN_FLAG(bool, use_globals, true,
"Root set: include global variables (.data and .bss)")
LSAN_FLAG(bool, use_stacks, true, "Root set: include thread stacks")
LSAN_FLAG(bool, use_registers, true, "Root set: include thread registers")
-LSAN_FLAG(bool, use_tls, !SANITIZER_MAC,
+LSAN_FLAG(bool, use_tls, true,
"Root set: include TLS and thread-specific storage")
LSAN_FLAG(bool, use_root_regions, true,
"Root set: include regions added via __lsan_register_root_region().")
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h Mon May 29 22:09:23 2017 (r319164)
@@ -319,5 +319,3 @@ class SizeClassAllocator32 {
ByteMap possible_regions;
SizeClassInfo size_class_info_array[kNumClasses];
};
-
-
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h Mon May 29 22:09:23 2017 (r319164)
@@ -380,7 +380,7 @@ void SetSoftRssLimitExceededCallback(voi
// Functions related to signal handling.
typedef void (*SignalHandlerType)(int, void *, void *);
-bool IsHandledDeadlySignal(int signum);
+HandleSignalMode GetHandleSignalMode(int signum);
void InstallDeadlySignalHandlers(SignalHandlerType handler);
const char *DescribeSignalOrException(int signo);
// Alternative signal stack (POSIX-only).
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h Mon May 29 22:09:23 2017 (r319164)
@@ -64,6 +64,11 @@ inline bool FlagHandler<HandleSignalMode
*t_ = b ? kHandleSignalYes : kHandleSignalNo;
return true;
}
+ if (internal_strcmp(value, "2") == 0 ||
+ internal_strcmp(value, "exclusive") == 0) {
+ *t_ = kHandleSignalExclusive;
+ return true;
+ }
Printf("ERROR: Invalid value for signal handler option: '%s'\n", value);
return false;
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.h Mon May 29 22:09:23 2017 (r319164)
@@ -21,6 +21,7 @@ namespace __sanitizer {
enum HandleSignalMode {
kHandleSignalNo,
kHandleSignalYes,
+ kHandleSignalExclusive,
};
struct CommonFlags {
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc Mon May 29 22:09:23 2017 (r319164)
@@ -75,12 +75,13 @@ COMMON_FLAG(bool, print_summary, true,
"If false, disable printing error summaries in addition to error "
"reports.")
COMMON_FLAG(int, print_module_map, 0,
- "OS X only. 0 = don't print, 1 = print only once before process "
- "exits, 2 = print after each report.")
+ "OS X only (0 - don't print, 1 - print only once before process "
+ "exits, 2 - print after each report).")
COMMON_FLAG(bool, check_printf, true, "Check printf arguments.")
#define COMMON_FLAG_HANDLE_SIGNAL_HELP(signal) \
"Controls custom tool's " #signal " handler (0 - do not registers the " \
- "handler, 1 - register the handler). "
+ "handler, 1 - register the handler and allow user to set own, " \
+ "2 - registers the handler and block user from changing it). "
COMMON_FLAG(HandleSignalMode, handle_segv, kHandleSignalYes,
COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGSEGV))
COMMON_FLAG(HandleSignalMode, handle_sigbus, kHandleSignalYes,
@@ -92,9 +93,6 @@ COMMON_FLAG(HandleSignalMode, handle_sig
COMMON_FLAG(HandleSignalMode, handle_sigfpe, kHandleSignalYes,
COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGFPE))
#undef COMMON_FLAG_HANDLE_SIGNAL_HELP
-COMMON_FLAG(bool, allow_user_segv_handler, false,
- "If set, allows user to register a SEGV handler even if the tool "
- "registers one.")
COMMON_FLAG(bool, use_sigaltstack, true,
"If set, uses alternate stack for signal handling.")
COMMON_FLAG(bool, detect_deadlocks, false,
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc Mon May 29 22:09:23 2017 (r319164)
@@ -62,8 +62,6 @@
#if SANITIZER_FREEBSD
#include <sys/exec.h>
#include <sys/sysctl.h>
-#include <vm/vm_param.h>
-#include <vm/pmap.h>
#include <machine/atomic.h>
extern "C" {
// <sys/umtx.h> must be included after <errno.h> and <sys/types.h> on
@@ -263,7 +261,7 @@ uptr internal_stat(const char *path, voi
uptr internal_lstat(const char *path, void *buf) {
#if SANITIZER_FREEBSD
return internal_syscall(SYSCALL(fstatat), AT_FDCWD, (uptr)path,
- (uptr)buf, AT_SYMLINK_NOFOLLOW);
+ (uptr)buf, AT_SYMLINK_NOFOLLOW);
#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path,
(uptr)buf, AT_SYMLINK_NOFOLLOW);
@@ -551,7 +549,7 @@ void BlockingMutex::Lock() {
void BlockingMutex::Unlock() {
atomic_uint32_t *m = reinterpret_cast<atomic_uint32_t *>(&opaque_storage_);
- u32 v = atomic_exchange(m, MtxUnlocked, memory_order_relaxed);
+ u32 v = atomic_exchange(m, MtxUnlocked, memory_order_release);
CHECK_NE(v, MtxUnlocked);
if (v == MtxSleeping) {
#if SANITIZER_FREEBSD
@@ -1398,7 +1396,7 @@ AndroidApiLevel AndroidGetApiLevel() {
#endif
-bool IsHandledDeadlySignal(int signum) {
+HandleSignalMode GetHandleSignalMode(int signum) {
switch (signum) {
case SIGABRT:
return common_flags()->handle_abort;
@@ -1411,7 +1409,7 @@ bool IsHandledDeadlySignal(int signum) {
case SIGBUS:
return common_flags()->handle_sigbus;
}
- return false;
+ return kHandleSignalNo;
}
#if !SANITIZER_GO
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cc Mon May 29 22:09:23 2017 (r319164)
@@ -178,6 +178,13 @@ static bool FixedCVE_2016_2143() {
// 4.4.6+ is OK.
if (minor == 4 && patch >= 6)
return true;
+ if (minor == 4 && patch == 0 && ptr[0] == '-' &&
+ internal_strstr(buf.version, "Ubuntu")) {
+ // Check Ubuntu 16.04
+ int r1 = internal_simple_strtoll(ptr+1, &ptr, 10);
+ if (r1 >= 13) // 4.4.0-13 or later
+ return true;
+ }
// Otherwise, OK if 4.5+.
return minor >= 5;
} else {
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc Mon May 29 22:09:23 2017 (r319164)
@@ -370,6 +370,27 @@ uptr GetTlsSize() {
void InitTlsSize() {
}
+uptr TlsBaseAddr() {
+ uptr segbase = 0;
+#if defined(__x86_64__)
+ asm("movq %%gs:0,%0" : "=r"(segbase));
+#elif defined(__i386__)
+ asm("movl %%gs:0,%0" : "=r"(segbase));
+#endif
+ return segbase;
+}
+
+// The size of the tls on darwin does not appear to be well documented,
+// however the vm memory map suggests that it is 1024 uptrs in size,
+// with a size of 0x2000 bytes on x86_64 and 0x1000 bytes on i386.
+uptr TlsSize() {
+#if defined(__x86_64__) || defined(__i386__)
+ return 1024 * sizeof(uptr);
+#else
+ return 0;
+#endif
+}
+
void GetThreadStackAndTls(bool main, uptr *stk_addr, uptr *stk_size,
uptr *tls_addr, uptr *tls_size) {
#if !SANITIZER_GO
@@ -377,8 +398,8 @@ void GetThreadStackAndTls(bool main, upt
GetThreadStackTopAndBottom(main, &stack_top, &stack_bottom);
*stk_addr = stack_bottom;
*stk_size = stack_top - stack_bottom;
- *tls_addr = 0;
- *tls_size = 0;
+ *tls_addr = TlsBaseAddr();
+ *tls_size = TlsSize();
#else
*stk_addr = 0;
*stk_size = 0;
@@ -393,10 +414,10 @@ void ListOfModules::init() {
memory_mapping.DumpListOfModules(&modules_);
}
-bool IsHandledDeadlySignal(int signum) {
+HandleSignalMode GetHandleSignalMode(int signum) {
// Handling fatal signals on watchOS and tvOS devices is disallowed.
if ((SANITIZER_WATCHOS || SANITIZER_TVOS) && !(SANITIZER_IOSSIM))
- return false;
+ return kHandleSignalNo;
switch (signum) {
case SIGABRT:
return common_flags()->handle_abort;
@@ -409,7 +430,7 @@ bool IsHandledDeadlySignal(int signum) {
case SIGBUS:
return common_flags()->handle_sigbus;
}
- return false;
+ return kHandleSignalNo;
}
MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED;
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc Mon May 29 22:09:23 2017 (r319164)
@@ -134,7 +134,8 @@ void SleepForMillis(int millis) {
void Abort() {
#if !SANITIZER_GO
// If we are handling SIGABRT, unhandle it first.
- if (IsHandledDeadlySignal(SIGABRT)) {
+ // TODO(vitalybuka): Check if handler belongs to sanitizer.
+ if (GetHandleSignalMode(SIGABRT) != kHandleSignalNo) {
struct sigaction sigact;
internal_memset(&sigact, 0, sizeof(sigact));
sigact.sa_sigaction = (sa_sigaction_t)SIG_DFL;
@@ -188,8 +189,26 @@ void UnsetAlternateSignalStack() {
static void MaybeInstallSigaction(int signum,
SignalHandlerType handler) {
- if (!IsHandledDeadlySignal(signum))
- return;
+ switch (GetHandleSignalMode(signum)) {
+ case kHandleSignalNo:
+ return;
+ case kHandleSignalYes: {
+ struct sigaction sigact;
+ internal_memset(&sigact, 0, sizeof(sigact));
+ CHECK_EQ(0, internal_sigaction(signum, nullptr, &sigact));
+ if (sigact.sa_flags & SA_SIGINFO) {
+ if (sigact.sa_sigaction) return;
+ } else {
+ if (sigact.sa_handler != SIG_DFL && sigact.sa_handler != SIG_IGN &&
+ sigact.sa_handler != SIG_ERR)
+ return;
+ }
+ break;
+ }
+ case kHandleSignalExclusive:
+ break;
+ }
+
struct sigaction sigact;
internal_memset(&sigact, 0, sizeof(sigact));
sigact.sa_sigaction = (sa_sigaction_t)handler;
Modified: projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc Mon May 29 22:09:23 2017 (r319164)
@@ -832,9 +832,9 @@ void InstallDeadlySignalHandlers(SignalH
// FIXME: Decide what to do on Windows.
}
-bool IsHandledDeadlySignal(int signum) {
+HandleSignalMode GetHandleSignalMode(int signum) {
// FIXME: Decide what to do on Windows.
- return false;
+ return kHandleSignalNo;
}
// Check based on flags if we should handle this exception.
Modified: projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp Mon May 29 22:09:23 2017 (r319164)
@@ -18,7 +18,6 @@
#include "scudo_tls.h"
-#include <limits.h>
#include <pthread.h>
namespace __scudo {
@@ -32,15 +31,17 @@ __attribute__((tls_model("initial-exec")
THREADLOCAL ScudoThreadContext ThreadLocalContext;
static void teardownThread(void *Ptr) {
- uptr Iteration = reinterpret_cast<uptr>(Ptr);
+ uptr I = reinterpret_cast<uptr>(Ptr);
// The glibc POSIX thread-local-storage deallocation routine calls user
// provided destructors in a loop of PTHREAD_DESTRUCTOR_ITERATIONS.
// We want to be called last since other destructors might call free and the
// like, so we wait until PTHREAD_DESTRUCTOR_ITERATIONS before draining the
// quarantine and swallowing the cache.
- if (Iteration < PTHREAD_DESTRUCTOR_ITERATIONS) {
- pthread_setspecific(PThreadKey, reinterpret_cast<void *>(Iteration + 1));
- return;
+ if (I > 1) {
+ // If pthread_setspecific fails, we will go ahead with the teardown.
+ if (LIKELY(pthread_setspecific(PThreadKey,
+ reinterpret_cast<void *>(I - 1)) == 0))
+ return;
}
ThreadLocalContext.commitBack();
ScudoThreadState = ThreadTornDown;
@@ -53,8 +54,9 @@ static void initOnce() {
}
void initThread() {
- pthread_once(&GlobalInitialized, initOnce);
- pthread_setspecific(PThreadKey, reinterpret_cast<void *>(1));
+ CHECK_EQ(pthread_once(&GlobalInitialized, initOnce), 0);
+ CHECK_EQ(pthread_setspecific(PThreadKey, reinterpret_cast<void *>(
+ GetPthreadDestructorIterations())), 0);
ThreadLocalContext.init();
ScudoThreadState = ThreadInitialized;
}
Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h Mon May 29 22:09:23 2017 (r319164)
@@ -816,6 +816,7 @@ void FlushShadowMemory();
void WriteMemoryProfile(char *buf, uptr buf_size, uptr nthread, uptr nlive);
int ExtractResolvFDs(void *state, int *fds, int nfd);
int ExtractRecvmsgFDs(void *msg, int *fds, int nfd);
+void ImitateTlsWrite(ThreadState *thr, uptr tls_addr, uptr tls_size);
int call_pthread_cancel_with_cleanup(int(*fn)(void *c, void *m,
void *abstime), void *c, void *m, void *abstime,
Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc Mon May 29 22:09:23 2017 (r319164)
@@ -320,6 +320,20 @@ int ExtractRecvmsgFDs(void *msgp, int *f
return res;
}
+void ImitateTlsWrite(ThreadState *thr, uptr tls_addr, uptr tls_size) {
+ // Check that the thr object is in tls;
+ const uptr thr_beg = (uptr)thr;
+ const uptr thr_end = (uptr)thr + sizeof(*thr);
+ CHECK_GE(thr_beg, tls_addr);
+ CHECK_LE(thr_beg, tls_addr + tls_size);
+ CHECK_GE(thr_end, tls_addr);
+ CHECK_LE(thr_end, tls_addr + tls_size);
+ // Since the thr object is huge, skip it.
+ MemoryRangeImitateWrite(thr, /*pc=*/2, tls_addr, thr_beg - tls_addr);
+ MemoryRangeImitateWrite(thr, /*pc=*/2, thr_end,
+ tls_addr + tls_size - thr_end);
+}
+
// Note: this function runs with async signals enabled,
// so it must not touch any tsan state.
int call_pthread_cancel_with_cleanup(int(*fn)(void *c, void *m,
Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc Mon May 29 22:09:23 2017 (r319164)
@@ -75,12 +75,18 @@ static void *SignalSafeGetOrAllocate(upt
static uptr main_thread_identity = 0;
ALIGNED(64) static char main_thread_state[sizeof(ThreadState)];
+ThreadState **cur_thread_location() {
+ ThreadState **thread_identity = (ThreadState **)pthread_self();
+ return ((uptr)thread_identity == main_thread_identity) ? nullptr
+ : thread_identity;
+}
+
ThreadState *cur_thread() {
- uptr thread_identity = (uptr)pthread_self();
- if (thread_identity == main_thread_identity || main_thread_identity == 0) {
+ ThreadState **thr_state_loc = cur_thread_location();
+ if (thr_state_loc == nullptr || main_thread_identity == 0) {
return (ThreadState *)&main_thread_state;
}
- ThreadState **fake_tls = (ThreadState **)MemToShadow(thread_identity);
+ ThreadState **fake_tls = (ThreadState **)MemToShadow((uptr)thr_state_loc);
ThreadState *thr = (ThreadState *)SignalSafeGetOrAllocate(
(uptr *)fake_tls, sizeof(ThreadState));
return thr;
@@ -90,13 +96,13 @@ ThreadState *cur_thread() {
// munmap first and then clear `fake_tls`; if we receive a signal in between,
// handler will try to access the unmapped ThreadState.
void cur_thread_finalize() {
- uptr thread_identity = (uptr)pthread_self();
- if (thread_identity == main_thread_identity) {
+ ThreadState **thr_state_loc = cur_thread_location();
+ if (thr_state_loc == nullptr) {
// Calling dispatch_main() or xpc_main() actually invokes pthread_exit to
// exit the main thread. Let's keep the main thread's ThreadState.
return;
}
- ThreadState **fake_tls = (ThreadState **)MemToShadow(thread_identity);
+ ThreadState **fake_tls = (ThreadState **)MemToShadow((uptr)thr_state_loc);
internal_munmap(*fake_tls, sizeof(ThreadState));
*fake_tls = nullptr;
}
@@ -240,6 +246,29 @@ void InitializePlatform() {
}
#if !SANITIZER_GO
+void ImitateTlsWrite(ThreadState *thr, uptr tls_addr, uptr tls_size) {
+ // The pointer to the ThreadState object is stored in the shadow memory
+ // of the tls.
+ uptr tls_end = tls_addr + tls_size;
+ ThreadState **thr_state_loc = cur_thread_location();
+ if (thr_state_loc == nullptr) {
+ MemoryRangeImitateWrite(thr, /*pc=*/2, tls_addr, tls_size);
+ } else {
+ uptr thr_state_start = (uptr)thr_state_loc;
+ uptr thr_state_end = thr_state_start + sizeof(uptr);
+ CHECK_GE(thr_state_start, tls_addr);
+ CHECK_LE(thr_state_start, tls_addr + tls_size);
+ CHECK_GE(thr_state_end, tls_addr);
+ CHECK_LE(thr_state_end, tls_addr + tls_size);
+ MemoryRangeImitateWrite(thr, /*pc=*/2, tls_addr,
+ thr_state_start - tls_addr);
+ MemoryRangeImitateWrite(thr, /*pc=*/2, thr_state_end,
+ tls_end - thr_state_end);
+ }
+}
+#endif
+
+#if !SANITIZER_GO
// Note: this function runs with async signals enabled,
// so it must not touch any tsan state.
int call_pthread_cancel_with_cleanup(int(*fn)(void *c, void *m,
Modified: projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
==============================================================================
--- projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc Mon May 29 22:09:23 2017 (r319164)
@@ -248,19 +248,7 @@ void ThreadStart(ThreadState *thr, int t
if (stk_addr && stk_size)
MemoryRangeImitateWrite(thr, /*pc=*/ 1, stk_addr, stk_size);
- if (tls_addr && tls_size) {
- // Check that the thr object is in tls;
- const uptr thr_beg = (uptr)thr;
- const uptr thr_end = (uptr)thr + sizeof(*thr);
- CHECK_GE(thr_beg, tls_addr);
- CHECK_LE(thr_beg, tls_addr + tls_size);
- CHECK_GE(thr_end, tls_addr);
- CHECK_LE(thr_end, tls_addr + tls_size);
- // Since the thr object is huge, skip it.
- MemoryRangeImitateWrite(thr, /*pc=*/ 2, tls_addr, thr_beg - tls_addr);
- MemoryRangeImitateWrite(thr, /*pc=*/ 2,
- thr_end, tls_addr + tls_size - thr_end);
- }
+ if (tls_addr && tls_size) ImitateTlsWrite(thr, tls_addr, tls_size);
}
#endif
Modified: projects/clang500-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__config Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/libc++/include/__config Mon May 29 22:09:23 2017 (r319164)
@@ -1126,6 +1126,10 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit
# define _LIBCPP_HAS_NO_IS_AGGREGATE
#endif
+#if !defined(__cpp_coroutines) || __cpp_coroutines < 201703L
+# define _LIBCPP_HAS_NO_COROUTINES
+#endif
+
#endif // __cplusplus
// Decide whether to use availability macros.
Modified: projects/clang500-import/contrib/libc++/include/__threading_support
==============================================================================
--- projects/clang500-import/contrib/libc++/include/__threading_support Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/libc++/include/__threading_support Mon May 29 22:09:23 2017 (r319164)
@@ -27,7 +27,7 @@
# include <pthread.h>
# include <sched.h>
#elif defined(_LIBCPP_HAS_THREAD_API_WIN32)
-#include <Windows.h>
+#include <windows.h>
#include <process.h>
#include <fibersapi.h>
#include <__undef_min_max>
Modified: projects/clang500-import/contrib/libc++/include/algorithm
==============================================================================
--- projects/clang500-import/contrib/libc++/include/algorithm Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/libc++/include/algorithm Mon May 29 22:09:23 2017 (r319164)
@@ -35,6 +35,9 @@ template <class InputIterator, class Fun
Function
for_each(InputIterator first, InputIterator last, Function f);
+template<class InputIterator, class Size, class Function>
+ InputIterator for_each_n(InputIterator first, Size n, Function f); // C++17
+
template <class InputIterator, class T>
InputIterator
find(InputIterator first, InputIterator last, const T& value);
@@ -961,6 +964,26 @@ for_each(_InputIterator __first, _InputI
return __f;
}
+#if _LIBCPP_STD_VER > 14
+// for_each_n
+
+template <class _InputIterator, class _Size, class _Function>
+inline _LIBCPP_INLINE_VISIBILITY
+_InputIterator
+for_each_n(_InputIterator __first, _Size __orig_n, _Function __f)
+{
+ typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize;
+ _IntegralSize __n = __orig_n;
+ while (__n > 0)
+ {
+ __f(*__first);
+ ++__first;
+ --__n;
+ }
+ return __first;
+}
+#endif
+
// find
template <class _InputIterator, class _Tp>
Modified: projects/clang500-import/contrib/libc++/include/experimental/__config
==============================================================================
--- projects/clang500-import/contrib/libc++/include/experimental/__config Mon May 29 21:48:02 2017 (r319163)
+++ projects/clang500-import/contrib/libc++/include/experimental/__config Mon May 29 22:09:23 2017 (r319164)
@@ -44,6 +44,13 @@
#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \
} } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
+#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \
+ _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 {
+
+#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES \
+ } _LIBCPP_END_NAMESPACE_EXPERIMENTAL
+
+#define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1
#define _VSTD_FS ::std::experimental::filesystem::v1
Copied: projects/clang500-import/contrib/libc++/include/experimental/coroutine (from r319151, vendor/libc++/dist/include/experimental/coroutine)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/clang500-import/contrib/libc++/include/experimental/coroutine Mon May 29 22:09:23 2017 (r319164, copy of r319151, vendor/libc++/dist/include/experimental/coroutine)
@@ -0,0 +1,270 @@
+// -*- C++ -*-
+//===----------------------------- coroutine -----------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_EXPERIMENTAL_COROUTINE
+#define _LIBCPP_EXPERIMENTAL_COROUTINE
+
+/**
+ experimental/coroutine synopsis
+
+// C++next
+
+namespace std {
+namespace experimental {
+inline namespace coroutines_v1 {
+
+ // 18.11.1 coroutine traits
+template <typename R, typename... ArgTypes>
+class coroutine_traits;
+// 18.11.2 coroutine handle
+template <typename Promise = void>
+class coroutine_handle;
+// 18.11.2.7 comparison operators:
+bool operator==(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator!=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator<(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator<=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator>=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+bool operator>(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;
+// 18.11.3 trivial awaitables
+struct suspend_never;
+struct suspend_always;
+// 18.11.2.8 hash support:
+template <class T> struct hash;
+template <class P> struct hash<coroutine_handle<P>>;
+
+} // namespace coroutines_v1
+} // namespace experimental
+} // namespace std
+
+ */
+
+#include <experimental/__config>
+#include <new>
+#include <type_traits>
+#include <functional>
+#include <memory> // for hash<T*>
+#include <cstddef>
+#include <cassert>
+#include <__debug>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
+#ifdef _LIBCPP_HAS_NO_COROUTINES
+# if defined(_LIBCPP_WARNING)
+ _LIBCPP_WARNING("<experimental/coroutine> cannot be used with this compiler")
+# else
+# warning <experimental/coroutine> cannot be used with this compiler
+# endif
+#endif
+
+#ifndef _LIBCPP_HAS_NO_COROUTINES
+
+_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES
+
+template <class _Tp, class = void>
+struct __coroutine_traits_sfinae {};
+
+template <class _Tp>
+struct __coroutine_traits_sfinae<
+ _Tp, typename __void_t<typename _Tp::promise_type>::type>
+{
+ using promise_type = typename _Tp::promise_type;
+};
+
+template <typename _Ret, typename... _Args>
+struct _LIBCPP_TEMPLATE_VIS coroutine_traits
+ : public __coroutine_traits_sfinae<_Ret>
+{
+};
+
+template <typename _Promise = void>
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list