From owner-svn-src-projects@freebsd.org Thu Aug 2 17:42:21 2018 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BD6F8106DD24 for ; Thu, 2 Aug 2018 17:42:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6DCF97337A; Thu, 2 Aug 2018 17:42:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4EC0414EBD; Thu, 2 Aug 2018 17:42:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w72HgKZF034963; Thu, 2 Aug 2018 17:42:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w72HgD5r034929; Thu, 2 Aug 2018 17:42:13 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201808021742.w72HgD5r034929@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 2 Aug 2018 17:42:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang700-import/contrib/llvm: include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/BinaryFormat include/llvm/CodeGen include/llvm/CodeGen/GlobalISel include/llvm/DebugInfo incl... X-SVN-Commit-Revision: 337149 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2018 17:42:21 -0000 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 +#include #include #include #include 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 VL, const DataL SmallVectorImpl &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. +/// querying the loop access info via AM.getResult. /// 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 *Created) const; + SmallVectorImpl &Created) const; SDValue BuildUDIV(SDNode *N, const APInt &Divisor, SelectionDAG &DAG, bool IsAfterLegalization, - std::vector *Created) const; + SmallVectorImpl &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 *Created) const; + SmallVectorImpl &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 &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 +#include #include 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; 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 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 +#include +#include + +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 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 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 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 rbegin() const; + std::reverse_iterator rend() const; + iterator_range children() const; }; -class DWARFDie::attribute_iterator : - public iterator_facade_base { +class DWARFDie::attribute_iterator + : public iterator_facade_base { /// 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 { DWARFDie Die; + + friend std::reverse_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::children() const { return make_range(begin(), end()); +} + +} // end namespace llvm + +namespace std { + +template <> +class reverse_iterator + : public llvm::iterator_facade_base< + reverse_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 &operator++() { + assert(!AtEnd && "Incrementing rend"); + llvm::DWARFDie D = Die.getPreviousSibling(); + if (D) + Die = D; + else + AtEnd = true; + return *this; + } + + reverse_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 &RHS) const { + return Die == RHS.Die && AtEnd == RHS.AtEnd; + } +}; + +} // namespace std + +namespace llvm { + +inline bool operator==(const std::reverse_iterator &LHS, + const std::reverse_iterator &RHS) { + return LHS.equals(RHS); +} + +inline bool operator!=(const std::reverse_iterator &LHS, + const std::reverse_iterator &RHS) { + return !(LHS == RHS); +} + +inline std::reverse_iterator DWARFDie::rbegin() const { + return llvm::make_reverse_iterator(end()); +} + +inline std::reverse_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 #include +#include #include +#include +#include namespace llvm { namespace orc { @@ -205,7 +208,43 @@ std::mutex RPCTypeName>::NameMutex; template std::string RPCTypeName>::Name; +template class RPCTypeName> { +public: + static const char *getName() { + std::lock_guard Lock(NameMutex); + if (Name.empty()) + raw_string_ostream(Name) + << "std::set<" << RPCTypeName::getName() << ">"; + return Name.data(); + } +private: + static std::mutex NameMutex; + static std::string Name; +}; + +template std::mutex RPCTypeName>::NameMutex; +template std::string RPCTypeName>::Name; + +template class RPCTypeName> { +public: + static const char *getName() { + std::lock_guard Lock(NameMutex); + if (Name.empty()) + raw_string_ostream(Name) + << "std::map<" << RPCTypeNameSequence() << ">"; + return Name.data(); + } + +private: + static std::mutex NameMutex; + static std::string Name; +}; + +template +std::mutex RPCTypeName>::NameMutex; +template std::string RPCTypeName>::Name; + /// The SerializationTraits 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, Error }; /// SerializationTraits default specialization for std::pair. -template -class SerializationTraits> { +template +class SerializationTraits, std::pair> { public: - static Error serialize(ChannelT &C, const std::pair &V) { - return serializeSeq(C, V.first, V.second); + static Error serialize(ChannelT &C, const std::pair &V) { + if (auto Err = SerializationTraits::serialize(C, V.first)) + return Err; + return SerializationTraits::serialize(C, V.second); } - static Error deserialize(ChannelT &C, std::pair &V) { - return deserializeSeq(C, V.first, V.second); + static Error deserialize(ChannelT &C, std::pair &V) { + if (auto Err = + SerializationTraits::deserialize(C, V.first)) + return Err; + return SerializationTraits::deserialize(C, V.second); } }; @@ -589,6 +633,9 @@ class SerializationTraits> { /// Deserialize a std::vector to a std::vector. static Error deserialize(ChannelT &C, std::vector &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> { for (auto &E : V) if (auto Err = deserializeSeq(C, E)) return Err; + + return Error::success(); + } +}; + +template +class SerializationTraits, std::set> { +public: + /// Serialize a std::set from std::set. + static Error serialize(ChannelT &C, const std::set &S) { + if (auto Err = serializeSeq(C, static_cast(S.size()))) + return Err; + + for (const auto &E : S) + if (auto Err = SerializationTraits::serialize(C, E)) + return Err; + + return Error::success(); + } + + /// Deserialize a std::set to a std::set. + static Error deserialize(ChannelT &C, std::set &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::deserialize(C, Val)) + return Err; + + auto Added = S.insert(Val).second; + if (!Added) + return make_error("Duplicate element in deserialized set", + orcError(OrcErrorCode::UnknownORCError)); + } + + return Error::success(); + } +}; + +template +class SerializationTraits, std::map> { +public: + /// Serialize a std::map from std::map. + static Error serialize(ChannelT &C, const std::map &M) { + if (auto Err = serializeSeq(C, static_cast(M.size()))) + return Err; + + for (const auto &E : M) { + if (auto Err = + SerializationTraits::serialize(C, E.first)) + return Err; + if (auto Err = + SerializationTraits::serialize(C, E.second)) + return Err; + } + + return Error::success(); + } + + /// Deserialize a std::map to a std::map. + static Error deserialize(ChannelT &C, std::map &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 Val; + if (auto Err = + SerializationTraits::deserialize(C, Val.first)) + return Err; + + if (auto Err = + SerializationTraits::deserialize(C, Val.second)) + return Err; + + auto Added = M.insert(Val).second; + if (!Added) + return make_error("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 ***