svn commit: r337149 - in projects/clang700-import/contrib/llvm: include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/BinaryFormat include/llvm/CodeGen include/llvm/CodeGen/GlobalISel in...
Dimitry Andric
dim at FreeBSD.org
Thu Aug 2 17:42:21 UTC 2018
Author: dim
Date: Thu Aug 2 17:42:12 2018
New Revision: 337149
URL: https://svnweb.freebsd.org/changeset/base/337149
Log:
Merge llvm trunk r338150 (just before the 7.0.0 branch point), and
resolve conflicts.
Added:
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
- copied unchanged from r337148, vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp
- copied unchanged from r337148, vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
- copied unchanged from r337148, vendor/llvm/dist/lib/Transforms/Vectorize/VPlanDominatorTree.h
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanLoopInfo.h
- copied unchanged from r337148, vendor/llvm/dist/lib/Transforms/Vectorize/VPlanLoopInfo.h
Deleted:
projects/clang700-import/contrib/llvm/tools/llvm-mca/README.txt
Modified:
projects/clang700-import/contrib/llvm/include/llvm/ADT/DenseSet.h
projects/clang700-import/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h
projects/clang700-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h
projects/clang700-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
projects/clang700-import/contrib/llvm/include/llvm/Analysis/MustExecute.h
projects/clang700-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
projects/clang700-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h
projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def
projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/ELF.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GCStrategy.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachORelocation.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/StackMaps.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h
projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DIContext.h
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
projects/clang700-import/contrib/llvm/include/llvm/IR/Attributes.td
projects/clang700-import/contrib/llvm/include/llvm/IR/Instruction.h
projects/clang700-import/contrib/llvm/include/llvm/IR/Instructions.h
projects/clang700-import/contrib/llvm/include/llvm/IR/Intrinsics.td
projects/clang700-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
projects/clang700-import/contrib/llvm/include/llvm/IR/IntrinsicsARM.td
projects/clang700-import/contrib/llvm/include/llvm/IR/IntrinsicsPowerPC.td
projects/clang700-import/contrib/llvm/include/llvm/IR/LegacyPassManagers.h
projects/clang700-import/contrib/llvm/include/llvm/IR/Statepoint.h
projects/clang700-import/contrib/llvm/include/llvm/IR/User.h
projects/clang700-import/contrib/llvm/include/llvm/LinkAllIR.h
projects/clang700-import/contrib/llvm/include/llvm/MC/MCDwarf.h
projects/clang700-import/contrib/llvm/include/llvm/MC/MCFragment.h
projects/clang700-import/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h
projects/clang700-import/contrib/llvm/include/llvm/MC/MCParser/AsmCond.h
projects/clang700-import/contrib/llvm/include/llvm/MC/MCStreamer.h
projects/clang700-import/contrib/llvm/include/llvm/Object/MachO.h
projects/clang700-import/contrib/llvm/include/llvm/PassAnalysisSupport.h
projects/clang700-import/contrib/llvm/include/llvm/PassRegistry.h
projects/clang700-import/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
projects/clang700-import/contrib/llvm/include/llvm/Support/ARMBuildAttributes.h
projects/clang700-import/contrib/llvm/include/llvm/Support/DataExtractor.h
projects/clang700-import/contrib/llvm/include/llvm/Support/GenericDomTree.h
projects/clang700-import/contrib/llvm/include/llvm/Support/MemoryBuffer.h
projects/clang700-import/contrib/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h
projects/clang700-import/contrib/llvm/include/llvm/Support/TargetOpcodes.def
projects/clang700-import/contrib/llvm/include/llvm/Support/xxhash.h
projects/clang700-import/contrib/llvm/include/llvm/Target/GenericOpcodes.td
projects/clang700-import/contrib/llvm/include/llvm/Target/TargetCallingConv.td
projects/clang700-import/contrib/llvm/include/llvm/Target/TargetInstrPredicate.td
projects/clang700-import/contrib/llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h
projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h
projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h
projects/clang700-import/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h
projects/clang700-import/contrib/llvm/lib/Analysis/AliasSetTracker.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/CFGPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/CallGraph.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/DemandedBits.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/GlobalsModRef.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/LazyValueInfo.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/MemDepPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/MustExecute.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp
projects/clang700-import/contrib/llvm/lib/Analysis/ValueTracking.cpp
projects/clang700-import/contrib/llvm/lib/AsmParser/LLParser.cpp
projects/clang700-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/AntiDepBreaker.h
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/BuiltinGCs.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/GCMetadata.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/GlobalMerge.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineOutliner.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineSink.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/MachineVerifier.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/SplitKit.h
projects/clang700-import/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp
projects/clang700-import/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
projects/clang700-import/contrib/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
projects/clang700-import/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp
projects/clang700-import/contrib/llvm/lib/Demangle/MicrosoftDemangle.cpp
projects/clang700-import/contrib/llvm/lib/Demangle/StringView.h
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
projects/clang700-import/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
projects/clang700-import/contrib/llvm/lib/FuzzMutate/FuzzerCLI.cpp
projects/clang700-import/contrib/llvm/lib/IR/Attributes.cpp
projects/clang700-import/contrib/llvm/lib/IR/AutoUpgrade.cpp
projects/clang700-import/contrib/llvm/lib/IR/Function.cpp
projects/clang700-import/contrib/llvm/lib/IR/InlineAsm.cpp
projects/clang700-import/contrib/llvm/lib/IR/Instructions.cpp
projects/clang700-import/contrib/llvm/lib/IR/LLVMContextImpl.h
projects/clang700-import/contrib/llvm/lib/IR/SymbolTableListTraitsImpl.h
projects/clang700-import/contrib/llvm/lib/IR/ValueSymbolTable.cpp
projects/clang700-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCAsmStreamer.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCAssembler.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h
projects/clang700-import/contrib/llvm/lib/MC/MCDwarf.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCInstrAnalysis.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCObjectFileInfo.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp
projects/clang700-import/contrib/llvm/lib/MC/MCStreamer.cpp
projects/clang700-import/contrib/llvm/lib/MC/MachObjectWriter.cpp
projects/clang700-import/contrib/llvm/lib/Object/COFFObjectFile.cpp
projects/clang700-import/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
projects/clang700-import/contrib/llvm/lib/Support/APFloat.cpp
projects/clang700-import/contrib/llvm/lib/Support/ConvertUTF.cpp
projects/clang700-import/contrib/llvm/lib/Support/CrashRecoveryContext.cpp
projects/clang700-import/contrib/llvm/lib/Support/DAGDeltaAlgorithm.cpp
projects/clang700-import/contrib/llvm/lib/Support/Errno.cpp
projects/clang700-import/contrib/llvm/lib/Support/FoldingSet.cpp
projects/clang700-import/contrib/llvm/lib/Support/FormattedStream.cpp
projects/clang700-import/contrib/llvm/lib/Support/ManagedStatic.cpp
projects/clang700-import/contrib/llvm/lib/Support/MemoryBuffer.cpp
projects/clang700-import/contrib/llvm/lib/Support/Path.cpp
projects/clang700-import/contrib/llvm/lib/Support/PrettyStackTrace.cpp
projects/clang700-import/contrib/llvm/lib/Support/SourceMgr.cpp
projects/clang700-import/contrib/llvm/lib/Support/StringPool.cpp
projects/clang700-import/contrib/llvm/lib/Support/StringRef.cpp
projects/clang700-import/contrib/llvm/lib/Support/TargetRegistry.cpp
projects/clang700-import/contrib/llvm/lib/Support/Windows/Path.inc
projects/clang700-import/contrib/llvm/lib/Support/YAMLParser.cpp
projects/clang700-import/contrib/llvm/lib/Support/regex_impl.h
projects/clang700-import/contrib/llvm/lib/Support/xxhash.cpp
projects/clang700-import/contrib/llvm/lib/TableGen/StringMatcher.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
projects/clang700-import/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
projects/clang700-import/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMCallingConv.h
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
projects/clang700-import/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp
projects/clang700-import/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
projects/clang700-import/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp
projects/clang700-import/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h
projects/clang700-import/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h
projects/clang700-import/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsCallLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsInstructionSelector.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/Mips/MipsSubtarget.h
projects/clang700-import/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
projects/clang700-import/contrib/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp
projects/clang700-import/contrib/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPC.h
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
projects/clang700-import/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
projects/clang700-import/contrib/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp
projects/clang700-import/contrib/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/Sparc/Sparc.h
projects/clang700-import/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZOperands.td
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td
projects/clang700-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/Target.cpp
projects/clang700-import/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86CallingConv.h
projects/clang700-import/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86FastISel.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h
projects/clang700-import/contrib/llvm/lib/Target/X86/X86InstrFoldTables.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/X86/X86InstrInfo.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86SchedHaswell.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86Schedule.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td
projects/clang700-import/contrib/llvm/lib/Target/X86/X86Subtarget.h
projects/clang700-import/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
projects/clang700-import/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h
projects/clang700-import/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp
projects/clang700-import/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h
projects/clang700-import/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h
projects/clang700-import/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/LICM.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/SROA.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/IntegerDivision.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlan.h
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
projects/clang700-import/contrib/llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.h
projects/clang700-import/contrib/llvm/tools/llvm-mca/DispatchStage.cpp
projects/clang700-import/contrib/llvm/tools/llvm-mca/DispatchStage.h
projects/clang700-import/contrib/llvm/tools/llvm-mca/InstrBuilder.cpp
projects/clang700-import/contrib/llvm/tools/llvm-mca/Instruction.h
projects/clang700-import/contrib/llvm/tools/llvm-mca/RetireControlUnit.h
projects/clang700-import/contrib/llvm/tools/llvm-mca/RetireStage.cpp
projects/clang700-import/contrib/llvm/tools/llvm-mca/llvm-mca.cpp
projects/clang700-import/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
projects/clang700-import/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp
projects/clang700-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
Directory Properties:
projects/clang700-import/contrib/llvm/ (props changed)
Modified: projects/clang700-import/contrib/llvm/include/llvm/ADT/DenseSet.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/ADT/DenseSet.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/ADT/DenseSet.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -17,7 +17,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/Support/type_traits.h"
-#include <algorithm>
+#include <algorithm>
#include <cstddef>
#include <initializer_list>
#include <iterator>
Modified: projects/clang700-import/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -43,6 +43,7 @@ class LoopInfo;
class PHINode;
class SelectInst;
class TargetLibraryInfo;
+class PhiValues;
class Value;
/// This is the AA result object for the basic, local, and stateless alias
@@ -60,19 +61,22 @@ class BasicAAResult : public AAResultBase<BasicAAResul
AssumptionCache &AC;
DominatorTree *DT;
LoopInfo *LI;
+ PhiValues *PV;
public:
BasicAAResult(const DataLayout &DL, const Function &F,
const TargetLibraryInfo &TLI, AssumptionCache &AC,
- DominatorTree *DT = nullptr, LoopInfo *LI = nullptr)
- : AAResultBase(), DL(DL), F(F), TLI(TLI), AC(AC), DT(DT), LI(LI) {}
+ DominatorTree *DT = nullptr, LoopInfo *LI = nullptr,
+ PhiValues *PV = nullptr)
+ : AAResultBase(), DL(DL), F(F), TLI(TLI), AC(AC), DT(DT), LI(LI), PV(PV)
+ {}
BasicAAResult(const BasicAAResult &Arg)
: AAResultBase(Arg), DL(Arg.DL), F(Arg.F), TLI(Arg.TLI), AC(Arg.AC),
- DT(Arg.DT), LI(Arg.LI) {}
+ DT(Arg.DT), LI(Arg.LI), PV(Arg.PV) {}
BasicAAResult(BasicAAResult &&Arg)
: AAResultBase(std::move(Arg)), DL(Arg.DL), F(Arg.F), TLI(Arg.TLI),
- AC(Arg.AC), DT(Arg.DT), LI(Arg.LI) {}
+ AC(Arg.AC), DT(Arg.DT), LI(Arg.LI), PV(Arg.PV) {}
/// Handle invalidation events in the new pass manager.
bool invalidate(Function &Fn, const PreservedAnalyses &PA,
Modified: projects/clang700-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -682,7 +682,7 @@ bool sortPtrAccesses(ArrayRef<Value *> VL, const DataL
SmallVectorImpl<unsigned> &SortedIndices);
/// Returns true if the memory operations \p A and \p B are consecutive.
-/// This is a simple API that does not depend on the analysis pass.
+/// This is a simple API that does not depend on the analysis pass.
bool isConsecutiveAccess(Value *A, Value *B, const DataLayout &DL,
ScalarEvolution &SE, bool CheckType = true);
@@ -734,7 +734,7 @@ class LoopAccessLegacyAnalysis : public FunctionPass {
/// accesses of a loop.
///
/// It runs the analysis for a loop on demand. This can be initiated by
-/// querying the loop access info via AM.getResult<LoopAccessAnalysis>.
+/// querying the loop access info via AM.getResult<LoopAccessAnalysis>.
/// getResult return a LoopAccessInfo object. See this class for the
/// specifics of what information is provided.
class LoopAccessAnalysis
Modified: projects/clang700-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -44,6 +44,7 @@ class Instruction;
class LoadInst;
class PHITransAddr;
class TargetLibraryInfo;
+class PhiValues;
class Value;
/// A memory dependence query can return one of three different answers.
@@ -360,13 +361,14 @@ class MemoryDependenceResults { (private)
AssumptionCache &AC;
const TargetLibraryInfo &TLI;
DominatorTree &DT;
+ PhiValues &PV;
PredIteratorCache PredCache;
public:
MemoryDependenceResults(AliasAnalysis &AA, AssumptionCache &AC,
const TargetLibraryInfo &TLI,
- DominatorTree &DT)
- : AA(AA), AC(AC), TLI(TLI), DT(DT) {}
+ DominatorTree &DT, PhiValues &PV)
+ : AA(AA), AC(AC), TLI(TLI), DT(DT), PV(PV) {}
/// Handle invalidation in the new PM.
bool invalidate(Function &F, const PreservedAnalyses &PA,
Modified: projects/clang700-import/contrib/llvm/include/llvm/Analysis/MustExecute.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/Analysis/MustExecute.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/Analysis/MustExecute.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -10,7 +10,7 @@
/// Contains a collection of routines for determining if a given instruction is
/// guaranteed to execute if a given point in control flow is reached. The most
/// common example is an instruction within a loop being provably executed if we
-/// branch to the header of it's containing loop.
+/// branch to the header of it's containing loop.
///
//===----------------------------------------------------------------------===//
@@ -58,7 +58,7 @@ void computeLoopSafetyInfo(LoopSafetyInfo *, Loop *);
bool isGuaranteedToExecute(const Instruction &Inst, const DominatorTree *DT,
const Loop *CurLoop,
const LoopSafetyInfo *SafetyInfo);
-
+
}
#endif
Modified: projects/clang700-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -326,7 +326,7 @@ class TargetTransformInfoImplBase { (public)
bool haveFastSqrt(Type *Ty) { return false; }
bool isFCmpOrdCheaperThanFCmpZero(Type *Ty) { return true; }
-
+
unsigned getFPOpCost(Type *Ty) { return TargetTransformInfo::TCC_Basic; }
int getIntImmCodeSizeCost(unsigned Opcode, unsigned Idx, const APInt &Imm,
Modified: projects/clang700-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/Analysis/ValueTracking.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -464,7 +464,7 @@ class Value;
/// This is equivelent to saying that all instructions within the basic block
/// are guaranteed to transfer execution to their successor within the basic
/// block. This has the same assumptions w.r.t. undefined behavior as the
- /// instruction variant of this function.
+ /// instruction variant of this function.
bool isGuaranteedToTransferExecutionToSuccessor(const BasicBlock *BB);
/// Return true if this function can prove that the instruction I
Modified: projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def Thu Aug 2 17:42:12 2018 (r337149)
@@ -856,6 +856,7 @@ HANDLE_DW_UT(0x06, split_type)
// TODO: Add Mach-O and COFF names.
// Official DWARF sections.
HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev")
+HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr")
HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges")
HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info")
HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types")
Modified: projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/ELF.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/ELF.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/BinaryFormat/ELF.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -413,8 +413,10 @@ enum {
// ARM Specific e_flags
enum : unsigned {
- EF_ARM_SOFT_FLOAT = 0x00000200U,
- EF_ARM_VFP_FLOAT = 0x00000400U,
+ EF_ARM_SOFT_FLOAT = 0x00000200U, // Legacy pre EABI_VER5
+ EF_ARM_ABI_FLOAT_SOFT = 0x00000200U, // EABI_VER5
+ EF_ARM_VFP_FLOAT = 0x00000400U, // Legacy pre EABI_VER5
+ EF_ARM_ABI_FLOAT_HARD = 0x00000400U, // EABI_VER5
EF_ARM_EABI_UNKNOWN = 0x00000000U,
EF_ARM_EABI_VER1 = 0x01000000U,
EF_ARM_EABI_VER2 = 0x02000000U,
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GCStrategy.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GCStrategy.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GCStrategy.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -104,12 +104,12 @@ class GCStrategy { (public)
const std::string &getName() const { return Name; }
/// By default, write barriers are replaced with simple store
- /// instructions. If true, you must provide a custom pass to lower
+ /// instructions. If true, you must provide a custom pass to lower
/// calls to \@llvm.gcwrite.
bool customWriteBarrier() const { return CustomWriteBarriers; }
/// By default, read barriers are replaced with simple load
- /// instructions. If true, you must provide a custom pass to lower
+ /// instructions. If true, you must provide a custom pass to lower
/// calls to \@llvm.gcread.
bool customReadBarrier() const { return CustomReadBarriers; }
@@ -146,7 +146,7 @@ class GCStrategy { (public)
}
/// By default, roots are left for the code generator so it can generate a
- /// stack map. If true, you must provide a custom pass to lower
+ /// stack map. If true, you must provide a custom pass to lower
/// calls to \@llvm.gcroot.
bool customRoots() const { return CustomRoots; }
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -786,7 +786,7 @@ class LegalizerInfo { (public)
/// setAction ({G_ADD, 0, LLT::scalar(32)}, Legal);
/// setLegalizeScalarToDifferentSizeStrategy(
/// G_ADD, 0, widenToLargerTypesAndNarrowToLargest);
- /// will end up defining getAction({G_ADD, 0, T}) to return the following
+ /// will end up defining getAction({G_ADD, 0, T}) to return the following
/// actions for different scalar types T:
/// LLT::scalar(1)..LLT::scalar(31): {WidenScalar, 0, LLT::scalar(32)}
/// LLT::scalar(32): {Legal, 0, LLT::scalar(32)}
@@ -814,7 +814,7 @@ class LegalizerInfo { (public)
VectorElementSizeChangeStrategies[OpcodeIdx][TypeIdx] = S;
}
- /// A SizeChangeStrategy for the common case where legalization for a
+ /// A SizeChangeStrategy for the common case where legalization for a
/// particular operation consists of only supporting a specific set of type
/// sizes. E.g.
/// setAction ({G_DIV, 0, LLT::scalar(32)}, Legal);
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -942,6 +942,16 @@ class MachineIRBuilderBase { (public)
/// \return a MachineInstrBuilder for the newly created instruction.
MachineInstrBuilder buildAtomicRMWUmin(unsigned OldValRes, unsigned Addr,
unsigned Val, MachineMemOperand &MMO);
+
+ /// Build and insert \p Res = G_BLOCK_ADDR \p BA
+ ///
+ /// G_BLOCK_ADDR computes the address of a basic block.
+ ///
+ /// \pre setBasicBlock or setMI must have been called.
+ /// \pre \p Res must be a generic virtual register of a pointer type.
+ ///
+ /// \return The newly created instruction.
+ MachineInstrBuilder buildBlockAddress(unsigned Res, const BlockAddress *BA);
};
/// A CRTP class that contains methods for building instructions that can
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachORelocation.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachORelocation.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachORelocation.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -27,15 +27,15 @@ namespace llvm {
uint32_t r_symbolnum; // symbol index if r_extern == 1 else section index
bool r_pcrel; // was relocated pc-relative already
uint8_t r_length; // length = 2 ^ r_length
- bool r_extern; //
+ bool r_extern; //
uint8_t r_type; // if not 0, machine-specific relocation type.
bool r_scattered; // 1 = scattered, 0 = non-scattered
int32_t r_value; // the value the item to be relocated is referring
// to.
- public:
+ public:
uint32_t getPackedFields() const {
if (r_scattered)
- return (1 << 31) | (r_pcrel << 30) | ((r_length & 3) << 28) |
+ return (1 << 31) | (r_pcrel << 30) | ((r_length & 3) << 28) |
((r_type & 15) << 24) | (r_address & 0x00FFFFFF);
else
return (r_symbolnum << 8) | (r_pcrel << 7) | ((r_length & 3) << 5) |
@@ -45,8 +45,8 @@ namespace llvm {
uint32_t getRawAddress() const { return r_address; }
MachORelocation(uint32_t addr, uint32_t index, bool pcrel, uint8_t len,
- bool ext, uint8_t type, bool scattered = false,
- int32_t value = 0) :
+ bool ext, uint8_t type, bool scattered = false,
+ int32_t value = 0) :
r_address(addr), r_symbolnum(index), r_pcrel(pcrel), r_length(len),
r_extern(ext), r_type(type), r_scattered(scattered), r_value(value) {}
};
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -105,7 +105,7 @@ class MachineModuleInfo : public ImmutablePass {
/// basic block's address of label.
MMIAddrLabelMap *AddrLabelSymbols;
- // TODO: Ideally, what we'd like is to have a switch that allows emitting
+ // TODO: Ideally, what we'd like is to have a switch that allows emitting
// synchronous (precise at call-sites only) CFA into .eh_frame. However,
// even under this switch, we'd like .debug_frame to be precise when using
// -g. At this moment, there's no way to specify that some CFI directives
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/MachineOutliner.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -19,6 +19,7 @@
#include "llvm/CodeGen/LiveRegUnits.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
+#include "llvm/CodeGen/LivePhysRegs.h"
namespace llvm {
namespace outliner {
@@ -74,6 +75,13 @@ struct Candidate { (public)
/// cost model information.
LiveRegUnits LRU;
+ /// Contains the accumulated register liveness information for the
+ /// instructions in this \p Candidate.
+ ///
+ /// This is optionally used by the target to determine which registers have
+ /// been used across the sequence.
+ LiveRegUnits UsedInSequence;
+
/// Return the number of instructions in this Candidate.
unsigned getLength() const { return Len; }
@@ -137,6 +145,12 @@ struct Candidate { (public)
// outlining candidate.
std::for_each(MBB->rbegin(), (MachineBasicBlock::reverse_iterator)front(),
[this](MachineInstr &MI) { LRU.stepBackward(MI); });
+
+ // Walk over the sequence itself and figure out which registers were used
+ // in the sequence.
+ UsedInSequence.init(TRI);
+ std::for_each(front(), std::next(back()),
+ [this](MachineInstr &MI) { UsedInSequence.accumulate(MI); });
}
};
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -252,7 +252,7 @@ class TargetRegisterInfo;
MachineInstr *Instr = nullptr; ///< Alternatively, a MachineInstr.
public:
- SUnit *OrigNode = nullptr; ///< If not this, the node from which this node
+ SUnit *OrigNode = nullptr; ///< If not this, the node from which this node
/// was cloned. (SD scheduling only)
const MCSchedClassDesc *SchedClass =
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/StackMaps.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/StackMaps.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/StackMaps.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -156,7 +156,7 @@ class StatepointOpers {
// TODO:: we should change the STATEPOINT representation so that CC and
// Flags should be part of meta operands, with args and deopt operands, and
// gc operands all prefixed by their length and a type code. This would be
- // much more consistent.
+ // much more consistent.
public:
// These values are aboolute offsets into the operands of the statepoint
// instruction.
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -718,7 +718,7 @@ class TargetLoweringBase { (public)
/// always broken down into scalars in some contexts. This occurs even if the
/// vector type is legal.
virtual unsigned getVectorTypeBreakdownForCallingConv(
- LLVMContext &Context, EVT VT, EVT &IntermediateVT,
+ LLVMContext &Context, CallingConv::ID CC, EVT VT, EVT &IntermediateVT,
unsigned &NumIntermediates, MVT &RegisterVT) const {
return getVectorTypeBreakdown(Context, VT, IntermediateVT, NumIntermediates,
RegisterVT);
@@ -1174,7 +1174,7 @@ class TargetLoweringBase { (public)
/// are legal for some operations and not for other operations.
/// For MIPS all vector types must be passed through the integer register set.
virtual MVT getRegisterTypeForCallingConv(LLVMContext &Context,
- EVT VT) const {
+ CallingConv::ID CC, EVT VT) const {
return getRegisterType(Context, VT);
}
@@ -1182,6 +1182,7 @@ class TargetLoweringBase { (public)
/// this occurs when a vector type is used, as vector are passed through the
/// integer register set.
virtual unsigned getNumRegistersForCallingConv(LLVMContext &Context,
+ CallingConv::ID CC,
EVT VT) const {
return getNumRegisters(Context, VT);
}
@@ -3489,10 +3490,10 @@ class TargetLowering : public TargetLoweringBase { (pu
//
SDValue BuildSDIV(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
bool IsAfterLegalization,
- std::vector<SDNode *> *Created) const;
+ SmallVectorImpl<SDNode *> &Created) const;
SDValue BuildUDIV(SDNode *N, const APInt &Divisor, SelectionDAG &DAG,
bool IsAfterLegalization,
- std::vector<SDNode *> *Created) const;
+ SmallVectorImpl<SDNode *> &Created) const;
/// Targets may override this function to provide custom SDIV lowering for
/// power-of-2 denominators. If the target returns an empty SDValue, LLVM
@@ -3500,7 +3501,7 @@ class TargetLowering : public TargetLoweringBase { (pu
/// operations.
virtual SDValue BuildSDIVPow2(SDNode *N, const APInt &Divisor,
SelectionDAG &DAG,
- std::vector<SDNode *> *Created) const;
+ SmallVectorImpl<SDNode *> &Created) const;
/// Indicate whether this target prefers to combine FDIVs with the same
/// divisor. If the transform should never be done, return zero. If the
@@ -3690,7 +3691,7 @@ class TargetLowering : public TargetLoweringBase { (pu
/// Given an LLVM IR type and return type attributes, compute the return value
/// EVTs and flags, and optionally also the offsets, if the return value is
/// being lowered to memory.
-void GetReturnInfo(Type *ReturnType, AttributeList attr,
+void GetReturnInfo(CallingConv::ID CC, Type *ReturnType, AttributeList attr,
SmallVectorImpl<ISD::OutputArg> &Outs,
const TargetLowering &TLI, const DataLayout &DL);
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -16,7 +16,7 @@
#include "llvm/Pass.h"
#include "llvm/Support/CodeGen.h"
-#include <cassert>
+#include <cassert>
#include <string>
namespace llvm {
Modified: projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -456,7 +456,7 @@ class TargetRegisterInfo : public MCRegisterInfo { (pu
/// stack frame offset. The first register is closest to the incoming stack
/// pointer if stack grows down, and vice versa.
/// Notice: This function does not take into account disabled CSRs.
- /// In most cases you will want to use instead the function
+ /// In most cases you will want to use instead the function
/// getCalleeSavedRegs that is implemented in MachineRegisterInfo.
virtual const MCPhysReg*
getCalleeSavedRegs(const MachineFunction *MF) const = 0;
@@ -518,7 +518,7 @@ class TargetRegisterInfo : public MCRegisterInfo { (pu
/// guaranteed to be restored before any uses. This is useful for targets that
/// have call sequences where a GOT register may be updated by the caller
/// prior to a call and is guaranteed to be restored (also by the caller)
- /// after the call.
+ /// after the call.
virtual bool isCallerPreservedPhysReg(unsigned PhysReg,
const MachineFunction &MF) const {
return false;
Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def Thu Aug 2 17:42:12 2018 (r337149)
@@ -143,7 +143,6 @@ CV_SYMBOL(S_MANSLOT , 0x1120)
CV_SYMBOL(S_MANMANYREG , 0x1121)
CV_SYMBOL(S_MANREGREL , 0x1122)
CV_SYMBOL(S_MANMANYREG2 , 0x1123)
-CV_SYMBOL(S_UNAMESPACE , 0x1124)
CV_SYMBOL(S_DATAREF , 0x1126)
CV_SYMBOL(S_ANNOTATIONREF , 0x1128)
CV_SYMBOL(S_TOKENREF , 0x1129)
@@ -255,6 +254,7 @@ SYMBOL_RECORD_ALIAS(S_GMANDATA , 0x111d, ManagedG
SYMBOL_RECORD(S_LTHREAD32 , 0x1112, ThreadLocalDataSym)
SYMBOL_RECORD_ALIAS(S_GTHREAD32 , 0x1113, GlobalTLS, ThreadLocalDataSym)
+SYMBOL_RECORD(S_UNAMESPACE , 0x1124, UsingNamespaceSym)
#undef CV_SYMBOL
#undef SYMBOL_RECORD
Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -942,6 +942,19 @@ class ThreadLocalDataSym : public SymbolRecord { (publ
uint32_t RecordOffset;
};
+// S_UNAMESPACE
+class UsingNamespaceSym : public SymbolRecord {
+public:
+ explicit UsingNamespaceSym(SymbolRecordKind Kind) : SymbolRecord(Kind) {}
+ explicit UsingNamespaceSym(uint32_t RecordOffset)
+ : SymbolRecord(SymbolRecordKind::RegRelativeSym),
+ RecordOffset(RecordOffset) {}
+
+ StringRef Name;
+
+ uint32_t RecordOffset;
+};
+
// S_ANNOTATION
using CVSymbol = CVRecord<SymbolKind>;
Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DIContext.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DIContext.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DIContext.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -154,6 +154,8 @@ enum DIDumpType : unsigned {
struct DIDumpOptions {
unsigned DumpType = DIDT_All;
unsigned RecurseDepth = -1U;
+ uint16_t Version = 0; // DWARF version to assume when extracting.
+ uint8_t AddrSize = 4; // Address byte size to assume when extracting.
bool ShowAddresses = true;
bool ShowChildren = false;
bool ShowParents = false;
Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -323,6 +323,10 @@ class DWARFContext : public DIContext { (public)
/// have initialized the relevant target descriptions.
Error loadRegisterInfo(const object::ObjectFile &Obj);
+ /// Get address size from CUs.
+ /// TODO: refactor compile_units() to make this const.
+ uint8_t getCUAddrSize();
+
private:
/// Return the compile unit which contains instruction with provided
/// address.
Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -51,6 +51,8 @@ class DWARFDataExtractor : public DataExtractor { (pub
/// reflect the absolute address of this pointer.
Optional<uint64_t> getEncodedPointer(uint32_t *Offset, uint8_t Encoding,
uint64_t AbsPosOffset = 0) const;
+
+ size_t size() const { return Section == nullptr ? 0 : Section->Data.size(); }
};
} // end namespace llvm
Copied: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h (from r337148, vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h Thu Aug 2 17:42:12 2018 (r337149, copy of r337148, vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h)
@@ -0,0 +1,98 @@
+//===- DWARFDebugAddr.h -------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_DWARFDEBUGADDR_H
+#define LLVM_DEBUGINFO_DWARFDEBUGADDR_H
+
+#include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/DebugInfo/DIContext.h"
+#include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
+#include "llvm/Support/Errc.h"
+#include "llvm/Support/Error.h"
+#include <cstdint>
+#include <map>
+#include <vector>
+
+namespace llvm {
+
+class Error;
+class raw_ostream;
+
+/// A class representing an address table as specified in DWARF v5.
+/// The table consists of a header followed by an array of address values from
+/// .debug_addr section.
+class DWARFDebugAddrTable {
+public:
+ struct Header {
+ /// The total length of the entries for this table, not including the length
+ /// field itself.
+ uint32_t Length = 0;
+ /// The DWARF version number.
+ uint16_t Version = 5;
+ /// The size in bytes of an address on the target architecture. For
+ /// segmented addressing, this is the size of the offset portion of the
+ /// address.
+ uint8_t AddrSize;
+ /// The size in bytes of a segment selector on the target architecture.
+ /// If the target system uses a flat address space, this value is 0.
+ uint8_t SegSize = 0;
+ };
+
+private:
+ dwarf::DwarfFormat Format;
+ uint32_t HeaderOffset;
+ Header HeaderData;
+ uint32_t DataSize = 0;
+ std::vector<uint64_t> Addrs;
+
+public:
+ void clear();
+
+ /// Extract an entire table, including all addresses.
+ Error extract(DWARFDataExtractor Data, uint32_t *OffsetPtr,
+ uint16_t Version, uint8_t AddrSize,
+ std::function<void(Error)> WarnCallback);
+
+ uint32_t getHeaderOffset() const { return HeaderOffset; }
+ uint8_t getAddrSize() const { return HeaderData.AddrSize; }
+ void dump(raw_ostream &OS, DIDumpOptions DumpOpts = {}) const;
+
+ /// Return the address based on a given index.
+ Expected<uint64_t> getAddrEntry(uint32_t Index) const;
+
+ /// Return the size of the table header including the length
+ /// but not including the addresses.
+ uint8_t getHeaderSize() const {
+ switch (Format) {
+ case dwarf::DwarfFormat::DWARF32:
+ return 8; // 4 + 2 + 1 + 1
+ case dwarf::DwarfFormat::DWARF64:
+ return 16; // 12 + 2 + 1 + 1
+ }
+ llvm_unreachable("Invalid DWARF format (expected DWARF32 or DWARF64)");
+ }
+
+ /// Returns the length of this table, including the length field, or 0 if the
+ /// length has not been determined (e.g. because the table has not yet been
+ /// parsed, or there was a problem in parsing).
+ uint32_t getLength() const;
+
+ /// Verify that the given length is valid for this table.
+ bool hasValidLength() const { return getLength() != 0; }
+
+ /// Invalidate Length field to stop further processing.
+ void invalidateLength() { HeaderData.Length = 0; }
+
+ /// Returns the length of the array of addresses.
+ uint32_t getDataSize() const;
+};
+
+} // end namespace llvm
+
+#endif // LLVM_DEBUGINFO_DWARFDEBUGADDR_H
Modified: projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -46,7 +46,7 @@ class DWARFDie {
public:
DWARFDie() = default;
- DWARFDie(DWARFUnit *Unit, const DWARFDebugInfoEntry * D) : U(Unit), Die(D) {}
+ DWARFDie(DWARFUnit *Unit, const DWARFDebugInfoEntry *D) : U(Unit), Die(D) {}
bool isValid() const { return U && Die; }
explicit operator bool() const { return isValid(); }
@@ -82,9 +82,7 @@ class DWARFDie {
}
/// Returns true for a valid DIE that terminates a sibling chain.
- bool isNULL() const {
- return getAbbreviationDeclarationPtr() == nullptr;
- }
+ bool isNULL() const { return getAbbreviationDeclarationPtr() == nullptr; }
/// Returns true if DIE represents a subprogram (not inlined).
bool isSubprogramDIE() const;
@@ -129,7 +127,6 @@ class DWARFDie {
void dump(raw_ostream &OS, unsigned indent = 0,
DIDumpOptions DumpOpts = DIDumpOptions()) const;
-
/// Convenience zero-argument overload for debugging.
LLVM_DUMP_METHOD void dump() const;
@@ -275,12 +272,16 @@ class DWARFDie {
iterator begin() const;
iterator end() const;
+
+ std::reverse_iterator<iterator> rbegin() const;
+ std::reverse_iterator<iterator> rend() const;
+
iterator_range<iterator> children() const;
};
-class DWARFDie::attribute_iterator :
- public iterator_facade_base<attribute_iterator, std::forward_iterator_tag,
- const DWARFAttribute> {
+class DWARFDie::attribute_iterator
+ : public iterator_facade_base<attribute_iterator, std::forward_iterator_tag,
+ const DWARFAttribute> {
/// The DWARF DIE we are extracting attributes from.
DWARFDie Die;
/// The value vended to clients via the operator*() or operator->().
@@ -288,6 +289,9 @@ class DWARFDie::attribute_iterator :
/// The attribute index within the abbreviation declaration in Die.
uint32_t Index;
+ friend bool operator==(const attribute_iterator &LHS,
+ const attribute_iterator &RHS);
+
/// Update the attribute index and attempt to read the attribute value. If the
/// attribute is able to be read, update AttrValue and the Index member
/// variable. If the attribute value is not able to be read, an appropriate
@@ -303,12 +307,21 @@ class DWARFDie::attribute_iterator :
attribute_iterator &operator--();
explicit operator bool() const { return AttrValue.isValid(); }
const DWARFAttribute &operator*() const { return AttrValue; }
- bool operator==(const attribute_iterator &X) const { return Index == X.Index; }
};
+inline bool operator==(const DWARFDie::attribute_iterator &LHS,
+ const DWARFDie::attribute_iterator &RHS) {
+ return LHS.Index == RHS.Index;
+}
+
+inline bool operator!=(const DWARFDie::attribute_iterator &LHS,
+ const DWARFDie::attribute_iterator &RHS) {
+ return !(LHS == RHS);
+}
+
inline bool operator==(const DWARFDie &LHS, const DWARFDie &RHS) {
return LHS.getDebugInfoEntry() == RHS.getDebugInfoEntry() &&
- LHS.getDwarfUnit() == RHS.getDwarfUnit();
+ LHS.getDwarfUnit() == RHS.getDwarfUnit();
}
inline bool operator!=(const DWARFDie &LHS, const DWARFDie &RHS) {
@@ -323,11 +336,15 @@ class DWARFDie::iterator
: public iterator_facade_base<iterator, std::bidirectional_iterator_tag,
const DWARFDie> {
DWARFDie Die;
+
+ friend std::reverse_iterator<llvm::DWARFDie::iterator>;
+ friend bool operator==(const DWARFDie::iterator &LHS,
+ const DWARFDie::iterator &RHS);
+
public:
iterator() = default;
- explicit iterator(DWARFDie D) : Die(D) {
- }
+ explicit iterator(DWARFDie D) : Die(D) {}
iterator &operator++() {
Die = Die.getSibling();
@@ -339,11 +356,19 @@ class DWARFDie::iterator
return *this;
}
- explicit operator bool() const { return Die.isValid(); }
const DWARFDie &operator*() const { return Die; }
- bool operator==(const iterator &X) const { return Die == X.Die; }
};
+inline bool operator==(const DWARFDie::iterator &LHS,
+ const DWARFDie::iterator &RHS) {
+ return LHS.Die == RHS.Die;
+}
+
+inline bool operator!=(const DWARFDie::iterator &LHS,
+ const DWARFDie::iterator &RHS) {
+ return !(LHS == RHS);
+}
+
// These inline functions must follow the DWARFDie::iterator definition above
// as they use functions from that class.
inline DWARFDie::iterator DWARFDie::begin() const {
@@ -356,6 +381,82 @@ inline DWARFDie::iterator DWARFDie::end() const {
inline iterator_range<DWARFDie::iterator> DWARFDie::children() const {
return make_range(begin(), end());
+}
+
+} // end namespace llvm
+
+namespace std {
+
+template <>
+class reverse_iterator<llvm::DWARFDie::iterator>
+ : public llvm::iterator_facade_base<
+ reverse_iterator<llvm::DWARFDie::iterator>,
+ bidirectional_iterator_tag, const llvm::DWARFDie> {
+
+private:
+ llvm::DWARFDie Die;
+ bool AtEnd;
+
+public:
+ reverse_iterator(llvm::DWARFDie::iterator It)
+ : Die(It.Die), AtEnd(!It.Die.getPreviousSibling()) {
+ if (!AtEnd)
+ Die = Die.getPreviousSibling();
+ }
+
+ reverse_iterator<llvm::DWARFDie::iterator> &operator++() {
+ assert(!AtEnd && "Incrementing rend");
+ llvm::DWARFDie D = Die.getPreviousSibling();
+ if (D)
+ Die = D;
+ else
+ AtEnd = true;
+ return *this;
+ }
+
+ reverse_iterator<llvm::DWARFDie::iterator> &operator--() {
+ if (AtEnd) {
+ AtEnd = false;
+ return *this;
+ }
+ Die = Die.getSibling();
+ assert(!Die.isNULL() && "Decrementing rbegin");
+ return *this;
+ }
+
+ const llvm::DWARFDie &operator*() const {
+ assert(Die.isValid());
+ return Die;
+ }
+
+ // FIXME: We should be able to specify the equals operator as a friend, but
+ // that causes the compiler to think the operator overload is ambiguous
+ // with the friend declaration and the actual definition as candidates.
+ bool equals(const reverse_iterator<llvm::DWARFDie::iterator> &RHS) const {
+ return Die == RHS.Die && AtEnd == RHS.AtEnd;
+ }
+};
+
+} // namespace std
+
+namespace llvm {
+
+inline bool operator==(const std::reverse_iterator<DWARFDie::iterator> &LHS,
+ const std::reverse_iterator<DWARFDie::iterator> &RHS) {
+ return LHS.equals(RHS);
+}
+
+inline bool operator!=(const std::reverse_iterator<DWARFDie::iterator> &LHS,
+ const std::reverse_iterator<DWARFDie::iterator> &RHS) {
+ return !(LHS == RHS);
+}
+
+inline std::reverse_iterator<DWARFDie::iterator> DWARFDie::rbegin() const {
+ return llvm::make_reverse_iterator(end());
+}
+
+inline std::reverse_iterator<DWARFDie::iterator> DWARFDie::rend() const {
+ return llvm::make_reverse_iterator(begin());
}
} // end namespace llvm
Modified: projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -14,7 +14,10 @@
#include "llvm/Support/thread.h"
#include <map>
#include <mutex>
+#include <set>
#include <sstream>
+#include <string>
+#include <vector>
namespace llvm {
namespace orc {
@@ -205,7 +208,43 @@ std::mutex RPCTypeName<std::vector<T>>::NameMutex;
template <typename T>
std::string RPCTypeName<std::vector<T>>::Name;
+template <typename T> class RPCTypeName<std::set<T>> {
+public:
+ static const char *getName() {
+ std::lock_guard<std::mutex> Lock(NameMutex);
+ if (Name.empty())
+ raw_string_ostream(Name)
+ << "std::set<" << RPCTypeName<T>::getName() << ">";
+ return Name.data();
+ }
+private:
+ static std::mutex NameMutex;
+ static std::string Name;
+};
+
+template <typename T> std::mutex RPCTypeName<std::set<T>>::NameMutex;
+template <typename T> std::string RPCTypeName<std::set<T>>::Name;
+
+template <typename K, typename V> class RPCTypeName<std::map<K, V>> {
+public:
+ static const char *getName() {
+ std::lock_guard<std::mutex> Lock(NameMutex);
+ if (Name.empty())
+ raw_string_ostream(Name)
+ << "std::map<" << RPCTypeNameSequence<K, V>() << ">";
+ return Name.data();
+ }
+
+private:
+ static std::mutex NameMutex;
+ static std::string Name;
+};
+
+template <typename K, typename V>
+std::mutex RPCTypeName<std::map<K, V>>::NameMutex;
+template <typename K, typename V> std::string RPCTypeName<std::map<K, V>>::Name;
+
/// The SerializationTraits<ChannelT, T> class describes how to serialize and
/// deserialize an instance of type T to/from an abstract channel of type
/// ChannelT. It also provides a representation of the type's name via the
@@ -527,15 +566,20 @@ class SerializationTraits<ChannelT, Expected<T>, Error
};
/// SerializationTraits default specialization for std::pair.
-template <typename ChannelT, typename T1, typename T2>
-class SerializationTraits<ChannelT, std::pair<T1, T2>> {
+template <typename ChannelT, typename T1, typename T2, typename T3, typename T4>
+class SerializationTraits<ChannelT, std::pair<T1, T2>, std::pair<T3, T4>> {
public:
- static Error serialize(ChannelT &C, const std::pair<T1, T2> &V) {
- return serializeSeq(C, V.first, V.second);
+ static Error serialize(ChannelT &C, const std::pair<T3, T4> &V) {
+ if (auto Err = SerializationTraits<ChannelT, T1, T3>::serialize(C, V.first))
+ return Err;
+ return SerializationTraits<ChannelT, T2, T4>::serialize(C, V.second);
}
- static Error deserialize(ChannelT &C, std::pair<T1, T2> &V) {
- return deserializeSeq(C, V.first, V.second);
+ static Error deserialize(ChannelT &C, std::pair<T3, T4> &V) {
+ if (auto Err =
+ SerializationTraits<ChannelT, T1, T3>::deserialize(C, V.first))
+ return Err;
+ return SerializationTraits<ChannelT, T2, T4>::deserialize(C, V.second);
}
};
@@ -589,6 +633,9 @@ class SerializationTraits<ChannelT, std::vector<T>> {
/// Deserialize a std::vector<T> to a std::vector<T>.
static Error deserialize(ChannelT &C, std::vector<T> &V) {
+ assert(V.empty() &&
+ "Expected default-constructed vector to deserialize into");
+
uint64_t Count = 0;
if (auto Err = deserializeSeq(C, Count))
return Err;
@@ -597,6 +644,92 @@ class SerializationTraits<ChannelT, std::vector<T>> {
for (auto &E : V)
if (auto Err = deserializeSeq(C, E))
return Err;
+
+ return Error::success();
+ }
+};
+
+template <typename ChannelT, typename T, typename T2>
+class SerializationTraits<ChannelT, std::set<T>, std::set<T2>> {
+public:
+ /// Serialize a std::set<T> from std::set<T2>.
+ static Error serialize(ChannelT &C, const std::set<T2> &S) {
+ if (auto Err = serializeSeq(C, static_cast<uint64_t>(S.size())))
+ return Err;
+
+ for (const auto &E : S)
+ if (auto Err = SerializationTraits<ChannelT, T, T2>::serialize(C, E))
+ return Err;
+
+ return Error::success();
+ }
+
+ /// Deserialize a std::set<T> to a std::set<T>.
+ static Error deserialize(ChannelT &C, std::set<T2> &S) {
+ assert(S.empty() && "Expected default-constructed set to deserialize into");
+
+ uint64_t Count = 0;
+ if (auto Err = deserializeSeq(C, Count))
+ return Err;
+
+ while (Count-- != 0) {
+ T2 Val;
+ if (auto Err = SerializationTraits<ChannelT, T, T2>::deserialize(C, Val))
+ return Err;
+
+ auto Added = S.insert(Val).second;
+ if (!Added)
+ return make_error<StringError>("Duplicate element in deserialized set",
+ orcError(OrcErrorCode::UnknownORCError));
+ }
+
+ return Error::success();
+ }
+};
+
+template <typename ChannelT, typename K, typename V, typename K2, typename V2>
+class SerializationTraits<ChannelT, std::map<K, V>, std::map<K2, V2>> {
+public:
+ /// Serialize a std::map<K, V> from std::map<K2, V2>.
+ static Error serialize(ChannelT &C, const std::map<K2, V2> &M) {
+ if (auto Err = serializeSeq(C, static_cast<uint64_t>(M.size())))
+ return Err;
+
+ for (const auto &E : M) {
+ if (auto Err =
+ SerializationTraits<ChannelT, K, K2>::serialize(C, E.first))
+ return Err;
+ if (auto Err =
+ SerializationTraits<ChannelT, V, V2>::serialize(C, E.second))
+ return Err;
+ }
+
+ return Error::success();
+ }
+
+ /// Deserialize a std::map<K, V> to a std::map<K, V>.
+ static Error deserialize(ChannelT &C, std::map<K2, V2> &M) {
+ assert(M.empty() && "Expected default-constructed map to deserialize into");
+
+ uint64_t Count = 0;
+ if (auto Err = deserializeSeq(C, Count))
+ return Err;
+
+ while (Count-- != 0) {
+ std::pair<K2, V2> Val;
+ if (auto Err =
+ SerializationTraits<ChannelT, K, K2>::deserialize(C, Val.first))
+ return Err;
+
+ if (auto Err =
+ SerializationTraits<ChannelT, V, V2>::deserialize(C, Val.second))
+ return Err;
+
+ auto Added = M.insert(Val).second;
+ if (!Added)
+ return make_error<StringError>("Duplicate element in deserialized map",
+ orcError(OrcErrorCode::UnknownORCError));
+ }
return Error::success();
}
Modified: projects/clang700-import/contrib/llvm/include/llvm/IR/Attributes.td
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/IR/Attributes.td Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/IR/Attributes.td Thu Aug 2 17:42:12 2018 (r337149)
@@ -236,3 +236,4 @@ def : MergeRule<"adjustCallerSSPLevel">;
def : MergeRule<"adjustCallerStackProbes">;
def : MergeRule<"adjustCallerStackProbeSize">;
def : MergeRule<"adjustMinLegalVectorWidth">;
+def : MergeRule<"adjustNullPointerValidAttr">;
Modified: projects/clang700-import/contrib/llvm/include/llvm/IR/Instruction.h
==============================================================================
--- projects/clang700-import/contrib/llvm/include/llvm/IR/Instruction.h Thu Aug 2 17:34:07 2018 (r337148)
+++ projects/clang700-import/contrib/llvm/include/llvm/IR/Instruction.h Thu Aug 2 17:42:12 2018 (r337149)
@@ -547,7 +547,7 @@ class Instruction : public User, (public)
/// may have side effects cannot be removed without semantically changing the
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list