Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Aug 2018 17:42:13 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
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...
Message-ID:  <201808021742.w72HgD5r034929@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201808021742.w72HgD5r034929>