Date: Wed, 19 Jul 2017 07:02:11 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r321184 - in vendor/llvm/dist: . docs docs/CommandGuide include/llvm/Analysis include/llvm/CodeGen include/llvm/DebugInfo/CodeView include/llvm/DebugInfo/DWARF include/llvm/DebugInfo/PD... Message-ID: <201707190702.v6J72Bex090654@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Wed Jul 19 07:02:10 2017 New Revision: 321184 URL: https://svnweb.freebsd.org/changeset/base/321184 Log: Vendor import of llvm trunk r308421: https://llvm.org/svn/llvm-project/llvm/trunk@308421 Added: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h (contents, props changed) vendor/llvm/dist/include/llvm/ToolDrivers/llvm-dlltool/ vendor/llvm/dist/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h (contents, props changed) vendor/llvm/dist/lib/Fuzzer/test/FlagsTest.cpp (contents, props changed) vendor/llvm/dist/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp (contents, props changed) vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ14.td vendor/llvm/dist/lib/Target/X86/X86CmovConversion.cpp (contents, props changed) vendor/llvm/dist/lib/Target/X86/X86ScheduleZnver1.td vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/ vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/CMakeLists.txt (contents, props changed) vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp (contents, props changed) vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/lib/ToolDrivers/llvm-dlltool/Options.td vendor/llvm/dist/test/Bitcode/upgrade-importedentity.ll vendor/llvm/dist/test/Bitcode/upgrade-importedentity.ll.bc (contents, props changed) vendor/llvm/dist/test/CodeGen/AArch64/GlobalISel/select-fma.mir vendor/llvm/dist/test/CodeGen/AArch64/aarch64_win64cc_vararg.ll vendor/llvm/dist/test/CodeGen/AArch64/falkor-hwpf-fix.ll vendor/llvm/dist/test/CodeGen/AArch64/falkor-hwpf-fix.mir vendor/llvm/dist/test/CodeGen/AArch64/falkor-hwpf.ll vendor/llvm/dist/test/CodeGen/AArch64/win64_vararg.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll vendor/llvm/dist/test/CodeGen/AMDGPU/move-to-valu-worklist.ll vendor/llvm/dist/test/CodeGen/BPF/select_ri.ll vendor/llvm/dist/test/CodeGen/Hexagon/switch-lut-explicit-section.ll vendor/llvm/dist/test/CodeGen/Hexagon/switch-lut-function-section.ll vendor/llvm/dist/test/CodeGen/Hexagon/switch-lut-multiple-functions.ll vendor/llvm/dist/test/CodeGen/Hexagon/switch-lut-text-section.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-load-v4i16.ll vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-v4i16.ll vendor/llvm/dist/test/CodeGen/MIR/AMDGPU/fold-multiple.mir vendor/llvm/dist/test/CodeGen/Mips/long-calls.ll vendor/llvm/dist/test/CodeGen/PowerPC/PR33671.ll vendor/llvm/dist/test/CodeGen/SPARC/soft-mul-div.ll vendor/llvm/dist/test/CodeGen/SystemZ/branch-11.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-abs-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-abs-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-add-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-const-11.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-conv-15.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-conv-16.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-copysign-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-div-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-move-13.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-mul-10.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-mul-11.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-mul-12.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-neg-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-round-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sqrt-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sub-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-add-17.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-mul-09.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-mul-10.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-mul-11.ll vendor/llvm/dist/test/CodeGen/SystemZ/int-sub-10.ll vendor/llvm/dist/test/CodeGen/SystemZ/tdc-07.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-abs-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-add-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-and-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-cmp-07.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-ctpop-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-div-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-intrinsics-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-intrinsics-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-max-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-min-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-move-18.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-mul-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-mul-04.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-mul-05.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-neg-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-or-03.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-round-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-sqrt-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-sub-02.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-xor-02.ll vendor/llvm/dist/test/CodeGen/Thumb/litpoolremat.ll vendor/llvm/dist/test/CodeGen/X86/alias-static-alloca.ll vendor/llvm/dist/test/CodeGen/X86/avx512-rotate.ll vendor/llvm/dist/test/CodeGen/X86/bmi-schedule.ll vendor/llvm/dist/test/CodeGen/X86/bmi2-schedule.ll vendor/llvm/dist/test/CodeGen/X86/bswap-rotate.ll vendor/llvm/dist/test/CodeGen/X86/f16c-schedule.ll vendor/llvm/dist/test/CodeGen/X86/lea32-schedule.ll vendor/llvm/dist/test/CodeGen/X86/lea64-schedule.ll vendor/llvm/dist/test/CodeGen/X86/lzcnt-schedule.ll vendor/llvm/dist/test/CodeGen/X86/memcmp-minsize.ll vendor/llvm/dist/test/CodeGen/X86/memcmp-optsize.ll vendor/llvm/dist/test/CodeGen/X86/popcnt-schedule.ll vendor/llvm/dist/test/CodeGen/X86/pr32282.ll vendor/llvm/dist/test/CodeGen/X86/pr32515.ll vendor/llvm/dist/test/CodeGen/X86/pr33772.ll vendor/llvm/dist/test/CodeGen/X86/pr33828.ll vendor/llvm/dist/test/CodeGen/X86/rotate_vec.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-512.ll vendor/llvm/dist/test/CodeGen/X86/x86-cmov-converter.ll vendor/llvm/dist/test/DllTool/ vendor/llvm/dist/test/DllTool/coff-exports.def vendor/llvm/dist/test/DllTool/coff-weak-exports.def vendor/llvm/dist/test/DllTool/lit.local.cfg vendor/llvm/dist/test/Instrumentation/AddressSanitizer/stack-poisoning-byval-args.ll vendor/llvm/dist/test/Instrumentation/DataFlowSanitizer/unordered_atomic_mem_intrins.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/cmp-tracing-api-x86_32.ll vendor/llvm/dist/test/Instrumentation/SanitizerCoverage/cmp-tracing-api-x86_64.ll vendor/llvm/dist/test/MC/AArch64/coff-relocations.s (contents, props changed) vendor/llvm/dist/test/MC/AArch64/invalid-instructions-spellcheck.s (contents, props changed) vendor/llvm/dist/test/MC/Disassembler/SystemZ/insns-z14.txt (contents, props changed) vendor/llvm/dist/test/MC/SystemZ/insn-bad-z14.s (contents, props changed) vendor/llvm/dist/test/MC/SystemZ/insn-good-z14.s (contents, props changed) vendor/llvm/dist/test/MC/SystemZ/invalid-instructions-spellcheck.s (contents, props changed) vendor/llvm/dist/test/ObjectYAML/CodeView/ vendor/llvm/dist/test/ObjectYAML/CodeView/guid.yaml vendor/llvm/dist/test/Other/cgscc-libcall-update.ll vendor/llvm/dist/test/Transforms/EarlyCSE/globalsaa-memoryssa.ll vendor/llvm/dist/test/Transforms/GVN/PRE/2017-06-28-pre-load-dbgloc.ll vendor/llvm/dist/test/Transforms/GlobalOpt/pr33686.ll vendor/llvm/dist/test/Transforms/IRCE/eq_ne.ll vendor/llvm/dist/test/Transforms/IRCE/pre_post_loops.ll vendor/llvm/dist/test/Transforms/Inline/AArch64/ext.ll vendor/llvm/dist/test/Transforms/Inline/PowerPC/ vendor/llvm/dist/test/Transforms/Inline/PowerPC/ext.ll vendor/llvm/dist/test/Transforms/Inline/PowerPC/lit.local.cfg vendor/llvm/dist/test/Transforms/Inline/X86/ext.ll vendor/llvm/dist/test/Transforms/InstCombine/element-atomic-memintrins.ll vendor/llvm/dist/test/Transforms/InstCombine/pr33765.ll vendor/llvm/dist/test/Transforms/LoopInterchange/current-limitations-lcssa.ll vendor/llvm/dist/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll vendor/llvm/dist/test/Transforms/LoopInterchange/interchange-not-profitable.ll vendor/llvm/dist/test/Transforms/LoopInterchange/interchange-output-dependencies.ll vendor/llvm/dist/test/Transforms/LoopInterchange/interchange-simple-count-down.ll vendor/llvm/dist/test/Transforms/LoopInterchange/interchange-simple-count-up.ll vendor/llvm/dist/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll vendor/llvm/dist/test/Transforms/LoopInterchange/not-interchanged-dependencies-1.ll vendor/llvm/dist/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll vendor/llvm/dist/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll vendor/llvm/dist/test/Transforms/LoopUnroll/runtime-loop-multiexit-dom-verify.ll vendor/llvm/dist/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll vendor/llvm/dist/test/tools/llvm-dwarfdump/X86/verify_debug_info.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-dwarfdump/X86/verify_unit_header_chain.s (contents, props changed) vendor/llvm/dist/test/tools/llvm-mt/ vendor/llvm/dist/test/tools/llvm-mt/help.test vendor/llvm/dist/test/tools/llvm-objdump/AArch64/Inputs/reloc-addend.obj.macho-aarch64 (contents, props changed) vendor/llvm/dist/test/tools/llvm-objdump/AArch64/macho-reloc-addend.test vendor/llvm/dist/tools/llvm-mt/ vendor/llvm/dist/tools/llvm-mt/CMakeLists.txt (contents, props changed) vendor/llvm/dist/tools/llvm-mt/LLVMBuild.txt (contents, props changed) vendor/llvm/dist/tools/llvm-mt/Opts.td vendor/llvm/dist/tools/llvm-mt/llvm-mt.cpp (contents, props changed) vendor/llvm/dist/unittests/IR/CFGBuilder.cpp (contents, props changed) vendor/llvm/dist/unittests/IR/CFGBuilder.h (contents, props changed) Deleted: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeServerHandler.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/PDBTypeServerHandler.h vendor/llvm/dist/lib/DebugInfo/PDB/Native/PDBTypeServerHandler.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerTraceState.cpp vendor/llvm/dist/test/CodeGen/Hexagon/vect/vect-loadv4i16.ll vendor/llvm/dist/test/CodeGen/SystemZ/vec-intrinsics.ll vendor/llvm/dist/test/MC/Mips/mt/invalid-wrong-error.s vendor/llvm/dist/test/MC/Mips/mt/mftr-mttr-aliases-invalid-wrong-error.s vendor/llvm/dist/test/MC/Mips/mt/mftr-mttr-aliases-invalid.s vendor/llvm/dist/test/MC/Mips/mt/mftr-mttr-aliases.s vendor/llvm/dist/test/MC/Mips/mt/mftr-mttr-reserved-valid.s vendor/llvm/dist/test/Transforms/InstCombine/and-not-or.ll vendor/llvm/dist/test/Transforms/LoopInterchange/interchange.ll vendor/llvm/dist/unittests/DebugInfo/PDB/TypeServerHandlerTest.cpp Modified: vendor/llvm/dist/RELEASE_TESTERS.TXT vendor/llvm/dist/docs/AliasAnalysis.rst vendor/llvm/dist/docs/CodingStandards.rst vendor/llvm/dist/docs/CommandGuide/lit.rst vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/DominanceFrontierImpl.h vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm/dist/include/llvm/Analysis/PostDominators.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h vendor/llvm/dist/include/llvm/CodeGen/MachineDominanceFrontier.h vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h vendor/llvm/dist/include/llvm/CodeGen/MachinePostDominators.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Formatters.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFVerifier.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/GenericError.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/Formatters.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InfoStream.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/RawTypes.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/Native/TpiHashing.h vendor/llvm/dist/include/llvm/DebugInfo/PDB/PDBExtras.h vendor/llvm/dist/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h vendor/llvm/dist/include/llvm/ExecutionEngine/RTDyldMemoryManager.h vendor/llvm/dist/include/llvm/IR/CallingConv.h vendor/llvm/dist/include/llvm/IR/Constants.h vendor/llvm/dist/include/llvm/IR/DIBuilder.h vendor/llvm/dist/include/llvm/IR/DebugInfoMetadata.h vendor/llvm/dist/include/llvm/IR/Dominators.h vendor/llvm/dist/include/llvm/IR/IntrinsicsHexagon.td vendor/llvm/dist/include/llvm/IR/IntrinsicsSystemZ.td vendor/llvm/dist/include/llvm/MC/LaneBitmask.h vendor/llvm/dist/include/llvm/MC/MCFixup.h vendor/llvm/dist/include/llvm/MC/MCInstrDesc.h vendor/llvm/dist/include/llvm/Object/COFFImportFile.h vendor/llvm/dist/include/llvm/Object/COFFModuleDefinition.h vendor/llvm/dist/include/llvm/ObjectYAML/CodeViewYAMLTypes.h vendor/llvm/dist/include/llvm/Support/AArch64TargetParser.def vendor/llvm/dist/include/llvm/Support/BinaryItemStream.h vendor/llvm/dist/include/llvm/Support/Format.h vendor/llvm/dist/include/llvm/Support/GenericDomTree.h vendor/llvm/dist/include/llvm/Support/GenericDomTreeConstruction.h vendor/llvm/dist/include/llvm/Support/TargetParser.h vendor/llvm/dist/include/llvm/Support/YAMLTraits.h vendor/llvm/dist/include/llvm/Target/GlobalISel/SelectionDAGCompat.td vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/lib/Analysis/CGSCCPassManager.cpp vendor/llvm/dist/lib/Analysis/DominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/InstCount.cpp vendor/llvm/dist/lib/Analysis/InstructionSimplify.cpp vendor/llvm/dist/lib/Analysis/IteratedDominanceFrontier.cpp vendor/llvm/dist/lib/Analysis/LazyCallGraph.cpp vendor/llvm/dist/lib/Analysis/LoopInfo.cpp vendor/llvm/dist/lib/Analysis/MemorySSA.cpp vendor/llvm/dist/lib/Analysis/PostDominators.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/TargetTransformInfo.cpp vendor/llvm/dist/lib/AsmParser/LLLexer.cpp vendor/llvm/dist/lib/AsmParser/LLParser.cpp vendor/llvm/dist/lib/AsmParser/LLToken.h vendor/llvm/dist/lib/Bitcode/Reader/MetadataLoader.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp vendor/llvm/dist/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm/dist/lib/CodeGen/GlobalISel/LegalizerHelper.cpp vendor/llvm/dist/lib/CodeGen/MachineCombiner.cpp vendor/llvm/dist/lib/CodeGen/MachineDominanceFrontier.cpp vendor/llvm/dist/lib/CodeGen/MachineDominators.cpp vendor/llvm/dist/lib/CodeGen/MachinePostDominators.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp vendor/llvm/dist/lib/CodeGen/XRayInstrumentation.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CVTypeVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/Formatters.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/SymbolDumper.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp vendor/llvm/dist/lib/DebugInfo/CodeView/TypeStreamMerger.cpp vendor/llvm/dist/lib/DebugInfo/DWARF/DWARFVerifier.cpp vendor/llvm/dist/lib/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/GenericError.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/InfoStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/InfoStreamBuilder.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiHashing.cpp vendor/llvm/dist/lib/DebugInfo/PDB/Native/TpiStream.cpp vendor/llvm/dist/lib/DebugInfo/PDB/PDBExtras.cpp vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h vendor/llvm/dist/lib/Fuzzer/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/FuzzerCorpus.h vendor/llvm/dist/lib/Fuzzer/FuzzerDriver.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerFlags.def vendor/llvm/dist/lib/Fuzzer/FuzzerInternal.h vendor/llvm/dist/lib/Fuzzer/FuzzerLoop.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMerge.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerMutate.h vendor/llvm/dist/lib/Fuzzer/FuzzerTracePC.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerTracePC.h vendor/llvm/dist/lib/Fuzzer/FuzzerUtil.cpp vendor/llvm/dist/lib/Fuzzer/FuzzerUtil.h vendor/llvm/dist/lib/Fuzzer/afl/afl_driver.cpp vendor/llvm/dist/lib/Fuzzer/test/CMakeLists.txt vendor/llvm/dist/lib/Fuzzer/test/FuzzerUnittest.cpp vendor/llvm/dist/lib/Fuzzer/test/fuzzer-flags.test vendor/llvm/dist/lib/Fuzzer/test/fuzzer-traces-hooks.test vendor/llvm/dist/lib/Fuzzer/test/reduce_inputs.test vendor/llvm/dist/lib/IR/AsmWriter.cpp vendor/llvm/dist/lib/IR/Constants.cpp vendor/llvm/dist/lib/IR/Core.cpp vendor/llvm/dist/lib/IR/DIBuilder.cpp vendor/llvm/dist/lib/IR/DebugInfoMetadata.cpp vendor/llvm/dist/lib/IR/Dominators.cpp vendor/llvm/dist/lib/IR/LLVMContextImpl.h vendor/llvm/dist/lib/IR/LegacyPassManager.cpp vendor/llvm/dist/lib/IR/Module.cpp vendor/llvm/dist/lib/Object/ArchiveWriter.cpp vendor/llvm/dist/lib/Object/COFFImportFile.cpp vendor/llvm/dist/lib/Object/COFFModuleDefinition.cpp vendor/llvm/dist/lib/Object/COFFObjectFile.cpp vendor/llvm/dist/lib/ObjectYAML/CodeViewYAMLTypes.cpp vendor/llvm/dist/lib/Option/OptTable.cpp vendor/llvm/dist/lib/Support/ErrorHandling.cpp vendor/llvm/dist/lib/Support/Host.cpp vendor/llvm/dist/lib/Support/Path.cpp vendor/llvm/dist/lib/Support/TargetParser.cpp vendor/llvm/dist/lib/Support/YAMLTraits.cpp vendor/llvm/dist/lib/Support/raw_ostream.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64.h vendor/llvm/dist/lib/Target/AArch64/AArch64.td vendor/llvm/dist/lib/Target/AArch64/AArch64CallingConvention.td vendor/llvm/dist/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FastISel.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64FrameLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64ISelLowering.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrAtomics.td vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.h vendor/llvm/dist/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm/dist/lib/Target/AArch64/AArch64LegalizerInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64RegisterInfo.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.cpp vendor/llvm/dist/lib/Target/AArch64/AArch64TargetMachine.h vendor/llvm/dist/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm/dist/lib/Target/AArch64/CMakeLists.txt vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp vendor/llvm/dist/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPU.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm/dist/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm/dist/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp vendor/llvm/dist/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h vendor/llvm/dist/lib/Target/AMDGPU/SIFoldOperands.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIFrameLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIISelLowering.h vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIInstrInfo.td vendor/llvm/dist/lib/Target/AMDGPU/SIInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/SIRegisterInfo.td vendor/llvm/dist/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp vendor/llvm/dist/lib/Target/AMDGPU/VOP2Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP3Instructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOP3PInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOPCInstructions.td vendor/llvm/dist/lib/Target/AMDGPU/VOPInstructions.td vendor/llvm/dist/lib/Target/ARM/ARM.td vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMFastISel.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstructionSelector.cpp vendor/llvm/dist/lib/Target/ARM/ARMLegalizerInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMMCInstLower.cpp vendor/llvm/dist/lib/Target/ARM/ARMRegisterBankInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/BPF/BPFISelLowering.cpp vendor/llvm/dist/lib/Target/BPF/BPFInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonBitSimplify.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonDepInstrInfo.td vendor/llvm/dist/lib/Target/Hexagon/HexagonEarlyIfConv.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonExpandCondsets.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonFrameLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenInsert.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonGenPredicate.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm/dist/lib/Target/Hexagon/HexagonIntrinsics.td vendor/llvm/dist/lib/Target/Hexagon/HexagonOptAddrMode.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonPatterns.td vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetObjectFile.cpp vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetObjectFile.h vendor/llvm/dist/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp vendor/llvm/dist/lib/Target/Mips/Mips.td vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td vendor/llvm/dist/lib/Target/Mips/MipsMTInstrFormats.td vendor/llvm/dist/lib/Target/Mips/MipsMTInstrInfo.td vendor/llvm/dist/lib/Target/Mips/MipsSEISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/Mips/MipsSEISelDAGToDAG.h vendor/llvm/dist/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm/dist/lib/Target/Mips/MipsSchedule.td vendor/llvm/dist/lib/Target/Mips/MipsSubtarget.h vendor/llvm/dist/lib/Target/Mips/MipsTargetStreamer.h vendor/llvm/dist/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCInstrVSX.td vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.h vendor/llvm/dist/lib/Target/Sparc/Sparc.td vendor/llvm/dist/lib/Target/Sparc/SparcISelLowering.cpp vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.cpp vendor/llvm/dist/lib/Target/Sparc/SparcSubtarget.h vendor/llvm/dist/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp vendor/llvm/dist/lib/Target/SystemZ/LLVMBuild.txt vendor/llvm/dist/lib/Target/SystemZ/SystemZFeatures.td vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZISelLowering.h vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFP.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrFormats.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrSystem.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrVector.td vendor/llvm/dist/lib/Target/SystemZ/SystemZOperators.td vendor/llvm/dist/lib/Target/SystemZ/SystemZPatterns.td vendor/llvm/dist/lib/Target/SystemZ/SystemZProcessors.td vendor/llvm/dist/lib/Target/SystemZ/SystemZRegisterInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZSchedule.td vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZ196.td vendor/llvm/dist/lib/Target/SystemZ/SystemZScheduleZEC12.td vendor/llvm/dist/lib/Target/SystemZ/SystemZShortenInst.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSubtarget.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZSubtarget.h vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetMachine.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp vendor/llvm/dist/lib/Target/SystemZ/SystemZTargetTransformInfo.h vendor/llvm/dist/lib/Target/X86/CMakeLists.txt vendor/llvm/dist/lib/Target/X86/X86.h vendor/llvm/dist/lib/Target/X86/X86.td vendor/llvm/dist/lib/Target/X86/X86CallingConv.td vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupBWInsts.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86InstrAVX512.td vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm/dist/lib/Target/X86/X86Schedule.td vendor/llvm/dist/lib/Target/X86/X86ScheduleBtVer2.td vendor/llvm/dist/lib/Target/X86/X86Subtarget.h vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/X86/X86TargetMachine.h vendor/llvm/dist/lib/ToolDrivers/CMakeLists.txt vendor/llvm/dist/lib/ToolDrivers/LLVMBuild.txt vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/IPO/Inliner.cpp vendor/llvm/dist/lib/Transforms/IPO/SampleProfile.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstructionCombining.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/MemorySanitizer.cpp vendor/llvm/dist/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm/dist/lib/Transforms/Scalar/EarlyCSE.cpp vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp vendor/llvm/dist/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp vendor/llvm/dist/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm/dist/lib/Transforms/Scalar/LoopInterchange.cpp vendor/llvm/dist/lib/Transforms/Scalar/TailRecursionElimination.cpp vendor/llvm/dist/lib/Transforms/Utils/LoopUnrollRuntime.cpp vendor/llvm/dist/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm/dist/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm/dist/runtimes/CMakeLists.txt vendor/llvm/dist/test/Analysis/CostModel/SystemZ/fp-arith.ll vendor/llvm/dist/test/Assembler/diimportedentity.ll vendor/llvm/dist/test/Bitcode/DIGlobalVariableExpression.ll vendor/llvm/dist/test/Bitcode/compatibility-3.6.ll vendor/llvm/dist/test/Bitcode/compatibility-3.7.ll vendor/llvm/dist/test/Bitcode/compatibility-3.8.ll vendor/llvm/dist/test/Bitcode/compatibility-3.9.ll vendor/llvm/dist/test/Bitcode/compatibility-4.0.ll vendor/llvm/dist/test/Bitcode/compatibility.ll vendor/llvm/dist/test/CMakeLists.txt vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi-varargs.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-abi_align.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-alloca-frame-pointer-offset.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-extern-weak.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-inline-asm.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-platform-reg.ll vendor/llvm/dist/test/CodeGen/AArch64/arm64-vext.ll vendor/llvm/dist/test/CodeGen/AArch64/atomic-ops-lse.ll vendor/llvm/dist/test/CodeGen/AArch64/dag-combine-invaraints.ll vendor/llvm/dist/test/CodeGen/AArch64/extern-weak.ll vendor/llvm/dist/test/CodeGen/AArch64/preferred-function-alignment.ll vendor/llvm/dist/test/CodeGen/AArch64/swifterror.ll vendor/llvm/dist/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-amdgpu-flat-work-group-size.ll vendor/llvm/dist/test/CodeGen/AMDGPU/attr-amdgpu-waves-per-eu.ll vendor/llvm/dist/test/CodeGen/AMDGPU/fcanonicalize-elimination.ll vendor/llvm/dist/test/CodeGen/AMDGPU/function-args.ll vendor/llvm/dist/test/CodeGen/AMDGPU/hsa.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.kernarg.segment.ptr.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll vendor/llvm/dist/test/CodeGen/AMDGPU/llvm.amdgcn.s.waitcnt.ll vendor/llvm/dist/test/CodeGen/AMDGPU/mubuf-offset-private.ll vendor/llvm/dist/test/CodeGen/AMDGPU/parallelandifcollapse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/parallelorifcollapse.ll vendor/llvm/dist/test/CodeGen/AMDGPU/private-access-no-objects.ll vendor/llvm/dist/test/CodeGen/AMDGPU/rename-independent-subregs-mac-operands.mir vendor/llvm/dist/test/CodeGen/AMDGPU/scratch-simple.ll vendor/llvm/dist/test/CodeGen/AMDGPU/sdwa-peephole-instr.mir vendor/llvm/dist/test/CodeGen/AMDGPU/sdwa-vop2-64bit.mir vendor/llvm/dist/test/CodeGen/AMDGPU/trap.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vccz-corrupt-bug-workaround.mir vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll vendor/llvm/dist/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-instruction-select.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-isel-divmod.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-isel.ll vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-legalize-divmod.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir vendor/llvm/dist/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir vendor/llvm/dist/test/CodeGen/ARM/atomic-op.ll vendor/llvm/dist/test/CodeGen/AVR/branch-relaxation.ll vendor/llvm/dist/test/CodeGen/BPF/setcc.ll vendor/llvm/dist/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll vendor/llvm/dist/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll vendor/llvm/dist/test/CodeGen/Generic/print-mul-exp.ll vendor/llvm/dist/test/CodeGen/Generic/print-mul.ll vendor/llvm/dist/test/CodeGen/Generic/print-shift.ll vendor/llvm/dist/test/CodeGen/Generic/v-split.ll vendor/llvm/dist/test/CodeGen/Generic/vector-redux.ll vendor/llvm/dist/test/CodeGen/Generic/vector.ll vendor/llvm/dist/test/CodeGen/Hexagon/intrinsics/system_user.ll vendor/llvm/dist/test/CodeGen/Hexagon/v6vec-vprint.ll vendor/llvm/dist/test/CodeGen/MIR/AArch64/target-memoperands.mir vendor/llvm/dist/test/CodeGen/MSP430/vararg.ll vendor/llvm/dist/test/CodeGen/Mips/2008-06-05-Carry.ll vendor/llvm/dist/test/CodeGen/Mips/dins.ll vendor/llvm/dist/test/CodeGen/Mips/dsp-patterns.ll vendor/llvm/dist/test/CodeGen/Mips/llcarry.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/add.ll vendor/llvm/dist/test/CodeGen/Mips/llvm-ir/sub.ll vendor/llvm/dist/test/CodeGen/Mips/madd-msub.ll vendor/llvm/dist/test/CodeGen/Mips/msa/f16-llvm-ir.ll vendor/llvm/dist/test/CodeGen/PowerPC/build-vector-tests.ll vendor/llvm/dist/test/CodeGen/PowerPC/ppc64-i128-abi.ll vendor/llvm/dist/test/CodeGen/PowerPC/swaps-le-6.ll vendor/llvm/dist/test/CodeGen/PowerPC/vsx-p9.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-add-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-cmp-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-div-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-mul-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-mul-06.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-mul-08.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sqrt-01.ll vendor/llvm/dist/test/CodeGen/SystemZ/fp-sub-01.ll vendor/llvm/dist/test/CodeGen/Thumb/select.ll vendor/llvm/dist/test/CodeGen/WebAssembly/indirect-import.ll vendor/llvm/dist/test/CodeGen/WebAssembly/userstack.ll vendor/llvm/dist/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll vendor/llvm/dist/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll vendor/llvm/dist/test/CodeGen/X86/2011-10-19-widen_vselect.ll vendor/llvm/dist/test/CodeGen/X86/DynamicCalleeSavedRegisters.ll vendor/llvm/dist/test/CodeGen/X86/atomic-minmax-i6432.ll vendor/llvm/dist/test/CodeGen/X86/atomic128.ll vendor/llvm/dist/test/CodeGen/X86/avx-schedule.ll vendor/llvm/dist/test/CodeGen/X86/avx2-arith.ll vendor/llvm/dist/test/CodeGen/X86/avx2-schedule.ll vendor/llvm/dist/test/CodeGen/X86/avx2-vector-shifts.ll vendor/llvm/dist/test/CodeGen/X86/avx512-cvt.ll vendor/llvm/dist/test/CodeGen/X86/avx512-mask-op.ll vendor/llvm/dist/test/CodeGen/X86/avx512-shift.ll vendor/llvm/dist/test/CodeGen/X86/bool-ext-inc.ll vendor/llvm/dist/test/CodeGen/X86/clobber-fi0.ll vendor/llvm/dist/test/CodeGen/X86/combine-rotates.ll vendor/llvm/dist/test/CodeGen/X86/combine-shl.ll vendor/llvm/dist/test/CodeGen/X86/combine-srl.ll vendor/llvm/dist/test/CodeGen/X86/combine-udiv.ll vendor/llvm/dist/test/CodeGen/X86/combine-urem.ll vendor/llvm/dist/test/CodeGen/X86/fast-isel-x86-64.ll vendor/llvm/dist/test/CodeGen/X86/hipe-cc.ll vendor/llvm/dist/test/CodeGen/X86/hipe-cc64.ll vendor/llvm/dist/test/CodeGen/X86/legalize-shift-64.ll vendor/llvm/dist/test/CodeGen/X86/machine-outliner-debuginfo.ll vendor/llvm/dist/test/CodeGen/X86/machine-outliner.ll vendor/llvm/dist/test/CodeGen/X86/memcmp.ll vendor/llvm/dist/test/CodeGen/X86/pmul.ll vendor/llvm/dist/test/CodeGen/X86/regparm.ll vendor/llvm/dist/test/CodeGen/X86/sibcall-win64.ll vendor/llvm/dist/test/CodeGen/X86/sse-schedule.ll vendor/llvm/dist/test/CodeGen/X86/sse2-schedule.ll vendor/llvm/dist/test/CodeGen/X86/sse3-schedule.ll vendor/llvm/dist/test/CodeGen/X86/sse41-schedule.ll vendor/llvm/dist/test/CodeGen/X86/sse42-schedule.ll vendor/llvm/dist/test/CodeGen/X86/sse4a-schedule.ll vendor/llvm/dist/test/CodeGen/X86/ssse3-schedule.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-invoke.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-stack-usage.ll vendor/llvm/dist/test/CodeGen/X86/statepoint-vector.ll vendor/llvm/dist/test/CodeGen/X86/vec_cmp_uint-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-sdiv-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv-udiv-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-idiv.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-rotate-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-shift-ashr-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-128.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-256.ll vendor/llvm/dist/test/CodeGen/X86/vector-tzcnt-512.ll vendor/llvm/dist/test/CodeGen/X86/vselect-avx.ll vendor/llvm/dist/test/CodeGen/X86/widen_arith-2.ll vendor/llvm/dist/test/CodeGen/X86/widen_cast-4.ll vendor/llvm/dist/test/CodeGen/X86/win64-nosse-csrs.ll vendor/llvm/dist/test/CodeGen/X86/win64_nonvol.ll vendor/llvm/dist/test/CodeGen/X86/win64_params.ll vendor/llvm/dist/test/CodeGen/X86/win_chkstk.ll vendor/llvm/dist/test/CodeGen/X86/win_coreclr_chkstk.ll vendor/llvm/dist/test/CodeGen/X86/x86-64-ms_abi-vararg.ll vendor/llvm/dist/test/CodeGen/XCore/varargs.ll vendor/llvm/dist/test/DebugInfo/Generic/namespace.ll vendor/llvm/dist/test/DebugInfo/PDB/pdbdump-headers.test vendor/llvm/dist/test/DebugInfo/X86/DIModule.ll vendor/llvm/dist/test/DebugInfo/X86/DIModuleContext.ll vendor/llvm/dist/test/DebugInfo/X86/fission-inline.ll vendor/llvm/dist/test/DebugInfo/X86/gnu-public-names.ll vendor/llvm/dist/test/DebugInfo/X86/lexical-block-file-inline.ll vendor/llvm/dist/test/DebugInfo/X86/pr19307.ll vendor/llvm/dist/test/FileCheck/regex-scope.txt vendor/llvm/dist/test/Instrumentation/AddressSanitizer/basic.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/working_set_basic.ll vendor/llvm/dist/test/Instrumentation/EfficiencySanitizer/working_set_slow.ll vendor/llvm/dist/test/Instrumentation/MemorySanitizer/msan_basic.ll vendor/llvm/dist/test/Linker/pr26037.ll vendor/llvm/dist/test/MC/AMDGPU/gfx9_asm_all.s vendor/llvm/dist/test/MC/AMDGPU/vop3-errs.s vendor/llvm/dist/test/MC/ARM/virtexts-thumb.s vendor/llvm/dist/test/MC/Disassembler/AMDGPU/gfx9_dasm_all.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mt/valid-r2-el.txt vendor/llvm/dist/test/MC/Disassembler/Mips/mt/valid-r2.txt vendor/llvm/dist/test/MC/Mips/mt/invalid.s vendor/llvm/dist/test/MC/Mips/mt/valid.s vendor/llvm/dist/test/MC/SystemZ/insn-bad-z13.s vendor/llvm/dist/test/MC/X86/pr22028.s vendor/llvm/dist/test/Object/no-section-table.test vendor/llvm/dist/test/Object/readobj-shared-object.test vendor/llvm/dist/test/Other/new-pass-manager.ll vendor/llvm/dist/test/ThinLTO/X86/debuginfo-cu-import.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/memcmp.ll vendor/llvm/dist/test/Transforms/CodeGenPrepare/X86/sink-addrmode.ll vendor/llvm/dist/test/Transforms/GVN/PRE/phi-translate.ll vendor/llvm/dist/test/Transforms/InstCombine/2017-07-07-UMul-ZExt.ll vendor/llvm/dist/test/Transforms/InstCombine/and.ll vendor/llvm/dist/test/Transforms/InstCombine/and2.ll vendor/llvm/dist/test/Transforms/InstCombine/icmp-logical.ll vendor/llvm/dist/test/Transforms/InstCombine/or-xor.ll vendor/llvm/dist/test/Transforms/InstCombine/or.ll vendor/llvm/dist/test/Transforms/JumpThreading/select.ll vendor/llvm/dist/test/Transforms/LoopVectorize/X86/float-induction-x86.ll vendor/llvm/dist/test/Transforms/LoopVectorize/debugloc.ll vendor/llvm/dist/test/Transforms/LoopVectorize/first-order-recurrence.ll vendor/llvm/dist/test/Transforms/LoopVectorize/float-induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/if-conversion-nest.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction-step.ll vendor/llvm/dist/test/Transforms/LoopVectorize/induction.ll vendor/llvm/dist/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll vendor/llvm/dist/test/Transforms/LoopVectorize/interleaved-accesses.ll vendor/llvm/dist/test/Transforms/LoopVectorize/iv_outside_user.ll vendor/llvm/dist/test/Transforms/LoopVectorize/miniters.ll vendor/llvm/dist/test/Transforms/LoopVectorize/runtime-check-readonly.ll vendor/llvm/dist/test/Transforms/LoopVectorize/runtime-check.ll vendor/llvm/dist/test/tools/llvm-cov/showTabsHTML.cpp vendor/llvm/dist/test/tools/llvm-readobj/Inputs/dynamic-table-so.x86 vendor/llvm/dist/test/tools/llvm-readobj/Inputs/dynamic-table.c vendor/llvm/dist/test/tools/llvm-readobj/dynamic.test vendor/llvm/dist/test/tools/llvm-readobj/gnu-sections.test vendor/llvm/dist/tools/llvm-ar/CMakeLists.txt vendor/llvm/dist/tools/llvm-ar/llvm-ar.cpp vendor/llvm/dist/tools/llvm-objdump/llvm-objdump.cpp vendor/llvm/dist/tools/llvm-pdbutil/DumpOutputStyle.cpp vendor/llvm/dist/tools/llvm-pdbutil/MinimalSymbolDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/MinimalTypeDumper.cpp vendor/llvm/dist/tools/llvm-pdbutil/MinimalTypeDumper.h vendor/llvm/dist/tools/llvm-pdbutil/PdbYaml.cpp vendor/llvm/dist/tools/llvm-pdbutil/PdbYaml.h vendor/llvm/dist/tools/llvm-pdbutil/llvm-pdbutil.cpp vendor/llvm/dist/tools/llvm-readobj/CMakeLists.txt vendor/llvm/dist/tools/llvm-readobj/COFFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/ELFDumper.cpp vendor/llvm/dist/tools/llvm-readobj/llvm-readobj.cpp vendor/llvm/dist/tools/opt-viewer/opt-diff.py vendor/llvm/dist/tools/opt-viewer/opt-stats.py vendor/llvm/dist/tools/opt-viewer/opt-viewer.py vendor/llvm/dist/tools/opt-viewer/optpmap.py vendor/llvm/dist/tools/opt-viewer/optrecord.py vendor/llvm/dist/unittests/Analysis/CGSCCPassManagerTest.cpp vendor/llvm/dist/unittests/Analysis/LazyCallGraphTest.cpp vendor/llvm/dist/unittests/DebugInfo/CodeView/RandomAccessVisitorTest.cpp vendor/llvm/dist/unittests/DebugInfo/PDB/CMakeLists.txt vendor/llvm/dist/unittests/IR/CMakeLists.txt vendor/llvm/dist/unittests/IR/DominatorTreeTest.cpp vendor/llvm/dist/unittests/IR/IRBuilderTest.cpp vendor/llvm/dist/unittests/IR/MetadataTest.cpp vendor/llvm/dist/unittests/Support/TargetParserTest.cpp vendor/llvm/dist/unittests/Support/YAMLIOTest.cpp vendor/llvm/dist/unittests/Support/raw_ostream_test.cpp vendor/llvm/dist/utils/TableGen/CodeGenRegisters.cpp vendor/llvm/dist/utils/lit/lit/LitConfig.py vendor/llvm/dist/utils/lit/lit/TestRunner.py vendor/llvm/dist/utils/lit/lit/main.py vendor/llvm/dist/utils/vim/syntax/llvm.vim Modified: vendor/llvm/dist/RELEASE_TESTERS.TXT ============================================================================== --- vendor/llvm/dist/RELEASE_TESTERS.TXT Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/RELEASE_TESTERS.TXT Wed Jul 19 07:02:10 2017 (r321184) @@ -41,14 +41,9 @@ E: hans@chromium.org T: x86 O: Windows -N: Renato Golin -E: renato.golin@linaro.org -T: ARM -O: Linux - N: Diana Picus E: diana.picus@linaro.org -T: AArch64 +T: ARM, AArch64 O: Linux N: Simon Dardis Modified: vendor/llvm/dist/docs/AliasAnalysis.rst ============================================================================== --- vendor/llvm/dist/docs/AliasAnalysis.rst Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/docs/AliasAnalysis.rst Wed Jul 19 07:02:10 2017 (r321184) @@ -132,7 +132,8 @@ The ``MayAlias`` response is used whenever the two poi same object. The ``PartialAlias`` response is used when the two memory objects are known to -be overlapping in some way, but do not start at the same address. +be overlapping in some way, regardless whether they start at the same address +or not. The ``MustAlias`` response may only be returned if the two memory objects are guaranteed to always start at exactly the same location. A ``MustAlias`` Modified: vendor/llvm/dist/docs/CodingStandards.rst ============================================================================== --- vendor/llvm/dist/docs/CodingStandards.rst Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/docs/CodingStandards.rst Wed Jul 19 07:02:10 2017 (r321184) @@ -34,10 +34,10 @@ There are some conventions that are not uniformly foll (e.g. the naming convention). This is because they are relatively new, and a lot of code was written before they were put in place. Our long term goal is for the entire codebase to follow the convention, but we explicitly *do not* -want patches that do large-scale reformating of existing code. On the other +want patches that do large-scale reformatting of existing code. On the other hand, it is reasonable to rename the methods of a class if you're about to -change it in some other way. Just do the reformating as a separate commit from -the functionality change. +change it in some other way. Just do the reformatting as a separate commit +from the functionality change. The ultimate goal of these guidelines is to increase the readability and maintainability of our common source base. If you have suggestions for topics to Modified: vendor/llvm/dist/docs/CommandGuide/lit.rst ============================================================================== --- vendor/llvm/dist/docs/CommandGuide/lit.rst Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/docs/CommandGuide/lit.rst Wed Jul 19 07:02:10 2017 (r321184) @@ -80,6 +80,13 @@ OUTPUT OPTIONS Show more information on test failures, for example the entire test output instead of just the test result. +.. option:: -vv, --echo-all-commands + + Echo all commands to stdout, as they are being executed. + This can be valuable for debugging test failures, as the last echoed command + will be the one which has failed. + This option implies ``--verbose``. + .. option:: -a, --show-all Show more information about all tests, for example the entire test Modified: vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/DominanceFrontier.h Wed Jul 19 07:02:10 2017 (r321184) @@ -29,9 +29,9 @@ namespace llvm { /// DominanceFrontierBase - Common base class for computing forward and inverse /// dominance frontiers for a function. /// -template <class BlockT> +template <class BlockT, bool IsPostDom> class DominanceFrontierBase { -public: + public: typedef std::set<BlockT *> DomSetType; // Dom set for a bb typedef std::map<BlockT *, DomSetType> DomSetMapType; // Dom set map @@ -40,10 +40,10 @@ class DominanceFrontierBase { (protected) DomSetMapType Frontiers; std::vector<BlockT *> Roots; - const bool IsPostDominators; + static constexpr bool IsPostDominators = IsPostDom; -public: - DominanceFrontierBase(bool isPostDom) : IsPostDominators(isPostDom) {} + public: + DominanceFrontierBase() {} /// getRoots - Return the root blocks of the current CFG. This may include /// multiple blocks if we are computing post dominators. For forward @@ -96,7 +96,7 @@ class DominanceFrontierBase { (protected) /// compare - Return true if the other dominance frontier base matches /// this dominance frontier base. Otherwise return false. - bool compare(DominanceFrontierBase<BlockT> &Other) const; + bool compare(DominanceFrontierBase &Other) const; /// print - Convert to human readable form /// @@ -113,22 +113,21 @@ class DominanceFrontierBase { (protected) /// used to compute a forward dominator frontiers. /// template <class BlockT> -class ForwardDominanceFrontierBase : public DominanceFrontierBase<BlockT> { -private: +class ForwardDominanceFrontierBase + : public DominanceFrontierBase<BlockT, false> { + private: typedef GraphTraits<BlockT *> BlockTraits; public: - typedef DominatorTreeBase<BlockT> DomTreeT; - typedef DomTreeNodeBase<BlockT> DomTreeNodeT; - typedef typename DominanceFrontierBase<BlockT>::DomSetType DomSetType; + typedef DomTreeBase<BlockT> DomTreeT; + typedef DomTreeNodeBase<BlockT> DomTreeNodeT; + typedef typename DominanceFrontierBase<BlockT, false>::DomSetType DomSetType; - ForwardDominanceFrontierBase() : DominanceFrontierBase<BlockT>(false) {} - - void analyze(DomTreeT &DT) { - this->Roots = DT.getRoots(); - assert(this->Roots.size() == 1 && - "Only one entry block for forward domfronts!"); - calculate(DT, DT[this->Roots[0]]); + void analyze(DomTreeT &DT) { + this->Roots = DT.getRoots(); + assert(this->Roots.size() == 1 && + "Only one entry block for forward domfronts!"); + calculate(DT, DT[this->Roots[0]]); } const DomSetType &calculate(const DomTreeT &DT, const DomTreeNodeT *Node); @@ -136,15 +135,16 @@ class ForwardDominanceFrontierBase : public DominanceF class DominanceFrontier : public ForwardDominanceFrontierBase<BasicBlock> { public: - typedef DominatorTreeBase<BasicBlock> DomTreeT; - typedef DomTreeNodeBase<BasicBlock> DomTreeNodeT; - typedef DominanceFrontierBase<BasicBlock>::DomSetType DomSetType; - typedef DominanceFrontierBase<BasicBlock>::iterator iterator; - typedef DominanceFrontierBase<BasicBlock>::const_iterator const_iterator; + typedef DomTreeBase<BasicBlock> DomTreeT; + typedef DomTreeNodeBase<BasicBlock> DomTreeNodeT; + typedef DominanceFrontierBase<BasicBlock, false>::DomSetType DomSetType; + typedef DominanceFrontierBase<BasicBlock, false>::iterator iterator; + typedef DominanceFrontierBase<BasicBlock, false>::const_iterator + const_iterator; - /// Handle invalidation explicitly. - bool invalidate(Function &F, const PreservedAnalyses &PA, - FunctionAnalysisManager::Invalidator &); + /// Handle invalidation explicitly. + bool invalidate(Function &F, const PreservedAnalyses &PA, + FunctionAnalysisManager::Invalidator &); }; class DominanceFrontierWrapperPass : public FunctionPass { @@ -168,7 +168,8 @@ class DominanceFrontierWrapperPass : public FunctionPa void dump() const; }; -extern template class DominanceFrontierBase<BasicBlock>; +extern template class DominanceFrontierBase<BasicBlock, false>; +extern template class DominanceFrontierBase<BasicBlock, true>; extern template class ForwardDominanceFrontierBase<BasicBlock>; /// \brief Analysis pass which computes a \c DominanceFrontier. Modified: vendor/llvm/dist/include/llvm/Analysis/DominanceFrontierImpl.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/DominanceFrontierImpl.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/DominanceFrontierImpl.h Wed Jul 19 07:02:10 2017 (r321184) @@ -39,33 +39,33 @@ class DFCalculateWorkObject { (public) const DomTreeNodeT *parentNode; }; -template <class BlockT> -void DominanceFrontierBase<BlockT>::removeBlock(BlockT *BB) { +template <class BlockT, bool IsPostDom> +void DominanceFrontierBase<BlockT, IsPostDom>::removeBlock(BlockT *BB) { assert(find(BB) != end() && "Block is not in DominanceFrontier!"); for (iterator I = begin(), E = end(); I != E; ++I) I->second.erase(BB); Frontiers.erase(BB); } -template <class BlockT> -void DominanceFrontierBase<BlockT>::addToFrontier(iterator I, - BlockT *Node) { +template <class BlockT, bool IsPostDom> +void DominanceFrontierBase<BlockT, IsPostDom>::addToFrontier(iterator I, + BlockT *Node) { assert(I != end() && "BB is not in DominanceFrontier!"); assert(I->second.count(Node) && "Node is not in DominanceFrontier of BB"); I->second.erase(Node); } -template <class BlockT> -void DominanceFrontierBase<BlockT>::removeFromFrontier(iterator I, - BlockT *Node) { +template <class BlockT, bool IsPostDom> +void DominanceFrontierBase<BlockT, IsPostDom>::removeFromFrontier( + iterator I, BlockT *Node) { assert(I != end() && "BB is not in DominanceFrontier!"); assert(I->second.count(Node) && "Node is not in DominanceFrontier of BB"); I->second.erase(Node); } -template <class BlockT> -bool DominanceFrontierBase<BlockT>::compareDomSet(DomSetType &DS1, - const DomSetType &DS2) const { +template <class BlockT, bool IsPostDom> +bool DominanceFrontierBase<BlockT, IsPostDom>::compareDomSet( + DomSetType &DS1, const DomSetType &DS2) const { std::set<BlockT *> tmpSet; for (BlockT *BB : DS2) tmpSet.insert(BB); @@ -88,9 +88,9 @@ bool DominanceFrontierBase<BlockT>::compareDomSet(DomS return false; } -template <class BlockT> -bool DominanceFrontierBase<BlockT>::compare( - DominanceFrontierBase<BlockT> &Other) const { +template <class BlockT, bool IsPostDom> +bool DominanceFrontierBase<BlockT, IsPostDom>::compare( + DominanceFrontierBase<BlockT, IsPostDom> &Other) const { DomSetMapType tmpFrontiers; for (typename DomSetMapType::const_iterator I = Other.begin(), E = Other.end(); @@ -118,8 +118,8 @@ bool DominanceFrontierBase<BlockT>::compare( return false; } -template <class BlockT> -void DominanceFrontierBase<BlockT>::print(raw_ostream &OS) const { +template <class BlockT, bool IsPostDom> +void DominanceFrontierBase<BlockT, IsPostDom>::print(raw_ostream &OS) const { for (const_iterator I = begin(), E = end(); I != E; ++I) { OS << " DomFrontier for BB "; if (I->first) @@ -142,8 +142,8 @@ void DominanceFrontierBase<BlockT>::print(raw_ostream } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) -template <class BlockT> -void DominanceFrontierBase<BlockT>::dump() const { +template <class BlockT, bool IsPostDom> +void DominanceFrontierBase<BlockT, IsPostDom>::dump() const { print(dbgs()); } #endif Modified: vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/IteratedDominanceFrontier.h Wed Jul 19 07:02:10 2017 (r321184) @@ -42,12 +42,12 @@ namespace llvm { /// By default, liveness is not used to prune the IDF computation. /// The template parameters should be either BasicBlock* or Inverse<BasicBlock /// *>, depending on if you want the forward or reverse IDF. -template <class NodeTy> +template <class NodeTy, bool IsPostDom> class IDFCalculator { + public: + IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT) + : DT(DT), useLiveIn(false) {} -public: - IDFCalculator(DominatorTreeBase<BasicBlock> &DT) : DT(DT), useLiveIn(false) {} - /// \brief Give the IDF calculator the set of blocks in which the value is /// defined. This is equivalent to the set of starting blocks it should be /// calculating the IDF for (though later gets pruned based on liveness). @@ -84,12 +84,12 @@ class IDFCalculator { (public) void calculate(SmallVectorImpl<BasicBlock *> &IDFBlocks); private: - DominatorTreeBase<BasicBlock> &DT; - bool useLiveIn; - const SmallPtrSetImpl<BasicBlock *> *LiveInBlocks; - const SmallPtrSetImpl<BasicBlock *> *DefBlocks; + DominatorTreeBase<BasicBlock, IsPostDom> &DT; + bool useLiveIn; + const SmallPtrSetImpl<BasicBlock *> *LiveInBlocks; + const SmallPtrSetImpl<BasicBlock *> *DefBlocks; }; -typedef IDFCalculator<BasicBlock *> ForwardIDFCalculator; -typedef IDFCalculator<Inverse<BasicBlock *>> ReverseIDFCalculator; +typedef IDFCalculator<BasicBlock *, false> ForwardIDFCalculator; +typedef IDFCalculator<Inverse<BasicBlock *>, true> ReverseIDFCalculator; } #endif Modified: vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/LazyCallGraph.h Wed Jul 19 07:02:10 2017 (r321184) @@ -43,6 +43,7 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/iterator.h" #include "llvm/ADT/iterator_range.h" +#include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/IR/BasicBlock.h" #include "llvm/IR/Constants.h" #include "llvm/IR/Function.h" @@ -908,7 +909,7 @@ class LazyCallGraph { (public) /// This sets up the graph and computes all of the entry points of the graph. /// No function definitions are scanned until their nodes in the graph are /// requested during traversal. - LazyCallGraph(Module &M); + LazyCallGraph(Module &M, TargetLibraryInfo &TLI); LazyCallGraph(LazyCallGraph &&G); LazyCallGraph &operator=(LazyCallGraph &&RHS); @@ -966,6 +967,22 @@ class LazyCallGraph { (public) return insertInto(F, N); } + /// Get the sequence of known and defined library functions. + /// + /// These functions, because they are known to LLVM, can have calls + /// introduced out of thin air from arbitrary IR. + ArrayRef<Function *> getLibFunctions() const { + return LibFunctions.getArrayRef(); + } + + /// Test whether a function is a known and defined library function tracked by + /// the call graph. + /// + /// Because these functions are known to LLVM they are specially modeled in + /// the call graph and even when all IR-level references have been removed + /// remain active and reachable. + bool isLibFunction(Function &F) const { return LibFunctions.count(&F); } + ///@{ /// \name Pre-SCC Mutation API /// @@ -1100,6 +1117,11 @@ class LazyCallGraph { (public) /// These are all of the RefSCCs which have no children. SmallVector<RefSCC *, 4> LeafRefSCCs; + /// Defined functions that are also known library functions which the + /// optimizer can reason about and therefore might introduce calls to out of + /// thin air. + SmallSetVector<Function *, 4> LibFunctions; + /// Helper to insert a new function, with an already looked-up entry in /// the NodeMap. Node &insertInto(Function &F, Node *&MappedN); @@ -1216,8 +1238,8 @@ class LazyCallGraphAnalysis : public AnalysisInfoMixin /// /// This just builds the set of entry points to the call graph. The rest is /// built lazily as it is walked. - LazyCallGraph run(Module &M, ModuleAnalysisManager &) { - return LazyCallGraph(M); + LazyCallGraph run(Module &M, ModuleAnalysisManager &AM) { + return LazyCallGraph(M, AM.getResult<TargetLibraryAnalysis>(M)); } }; Modified: vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/LoopInfo.h Wed Jul 19 07:02:10 2017 (r321184) @@ -56,7 +56,8 @@ class Loop; class MDNode; class PHINode; class raw_ostream; -template<class N> class DominatorTreeBase; +template <class N, bool IsPostDom> +class DominatorTreeBase; template<class N, class M> class LoopInfoBase; template<class N, class M> class LoopBase; @@ -663,12 +664,12 @@ class LoopInfoBase { (public) } /// Create the loop forest using a stable algorithm. - void analyze(const DominatorTreeBase<BlockT> &DomTree); + void analyze(const DominatorTreeBase<BlockT, false> &DomTree); // Debugging void print(raw_ostream &OS) const; - void verify(const DominatorTreeBase<BlockT> &DomTree) const; + void verify(const DominatorTreeBase<BlockT, false> &DomTree) const; }; // Implementation in LoopInfoImpl.h @@ -683,7 +684,7 @@ class LoopInfo : public LoopInfoBase<BasicBlock, Loop> LoopInfo(const LoopInfo &) = delete; public: LoopInfo() {} - explicit LoopInfo(const DominatorTreeBase<BasicBlock> &DomTree); + explicit LoopInfo(const DominatorTreeBase<BasicBlock, false> &DomTree); LoopInfo(LoopInfo &&Arg) : BaseT(std::move(static_cast<BaseT &>(Arg))) {} LoopInfo &operator=(LoopInfo &&RHS) { Modified: vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/LoopInfoImpl.h Wed Jul 19 07:02:10 2017 (r321184) @@ -340,10 +340,10 @@ void LoopBase<BlockT, LoopT>::print(raw_ostream &OS, u /// Discover a subloop with the specified backedges such that: All blocks within /// this loop are mapped to this loop or a subloop. And all subloops within this /// loop have their parent loop set to this loop or a subloop. -template<class BlockT, class LoopT> -static void discoverAndMapSubloop(LoopT *L, ArrayRef<BlockT*> Backedges, - LoopInfoBase<BlockT, LoopT> *LI, - const DominatorTreeBase<BlockT> &DomTree) { +template <class BlockT, class LoopT> +static void discoverAndMapSubloop( + LoopT *L, ArrayRef<BlockT *> Backedges, LoopInfoBase<BlockT, LoopT> *LI, + const DomTreeBase<BlockT> &DomTree) { typedef GraphTraits<Inverse<BlockT*> > InvBlockTraits; unsigned NumBlocks = 0; @@ -462,10 +462,9 @@ void PopulateLoopsDFS<BlockT, LoopT>::insertIntoLoop(B /// /// The Block vectors are inclusive, so step 3 requires loop-depth number of /// insertions per block. -template<class BlockT, class LoopT> -void LoopInfoBase<BlockT, LoopT>:: -analyze(const DominatorTreeBase<BlockT> &DomTree) { - +template <class BlockT, class LoopT> +void LoopInfoBase<BlockT, LoopT>::analyze( + const DomTreeBase<BlockT> &DomTree) { // Postorder traversal of the dominator tree. const DomTreeNodeBase<BlockT> *DomRoot = DomTree.getRootNode(); for (auto DomNode : post_order(DomRoot)) { @@ -607,7 +606,7 @@ static void compareLoops(const LoopT *L, const LoopT * template <class BlockT, class LoopT> void LoopInfoBase<BlockT, LoopT>::verify( - const DominatorTreeBase<BlockT> &DomTree) const { + const DomTreeBase<BlockT> &DomTree) const { DenseSet<const LoopT*> Loops; for (iterator I = begin(), E = end(); I != E; ++I) { assert(!(*I)->getParentLoop() && "Top-level loop has a parent!"); Modified: vendor/llvm/dist/include/llvm/Analysis/PostDominators.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/PostDominators.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/PostDominators.h Wed Jul 19 07:02:10 2017 (r321184) @@ -22,10 +22,8 @@ namespace llvm { /// PostDominatorTree Class - Concrete subclass of DominatorTree that is used to /// compute the post-dominator tree. /// -struct PostDominatorTree : public DominatorTreeBase<BasicBlock> { - typedef DominatorTreeBase<BasicBlock> Base; - - PostDominatorTree() : DominatorTreeBase<BasicBlock>(true) {} +struct PostDominatorTree : public PostDomTreeBase<BasicBlock> { + typedef PostDomTreeBase<BasicBlock> Base; /// Handle invalidation explicitly. bool invalidate(Function &F, const PreservedAnalyses &PA, Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Wed Jul 19 07:02:10 2017 (r321184) @@ -237,17 +237,15 @@ struct FoldingSetTrait<SCEVPredicate> : DefaultFolding }; /// This class represents an assumption that two SCEV expressions are equal, -/// and this can be checked at run-time. We assume that the left hand side is -/// a SCEVUnknown and the right hand side a constant. +/// and this can be checked at run-time. class SCEVEqualPredicate final : public SCEVPredicate { - /// We assume that LHS == RHS, where LHS is a SCEVUnknown and RHS a - /// constant. - const SCEVUnknown *LHS; - const SCEVConstant *RHS; + /// We assume that LHS == RHS. + const SCEV *LHS; + const SCEV *RHS; public: - SCEVEqualPredicate(const FoldingSetNodeIDRef ID, const SCEVUnknown *LHS, - const SCEVConstant *RHS); + SCEVEqualPredicate(const FoldingSetNodeIDRef ID, const SCEV *LHS, + const SCEV *RHS); /// Implementation of the SCEVPredicate interface bool implies(const SCEVPredicate *N) const override; @@ -256,10 +254,10 @@ class SCEVEqualPredicate final : public SCEVPredicate const SCEV *getExpr() const override; /// Returns the left hand side of the equality. - const SCEVUnknown *getLHS() const { return LHS; } + const SCEV *getLHS() const { return LHS; } /// Returns the right hand side of the equality. - const SCEVConstant *getRHS() const { return RHS; } + const SCEV *getRHS() const { return RHS; } /// Methods for support type inquiry through isa, cast, and dyn_cast: static bool classof(const SCEVPredicate *P) { @@ -1241,6 +1239,14 @@ class ScalarEvolution { (public) SmallVector<const SCEV *, 4> NewOp(Operands.begin(), Operands.end()); return getAddRecExpr(NewOp, L, Flags); } + + /// Checks if \p SymbolicPHI can be rewritten as an AddRecExpr under some + /// Predicates. If successful return these <AddRecExpr, Predicates>; + /// The function is intended to be called from PSCEV (the caller will decide + /// whether to actually add the predicates and carry out the rewrites). + Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> + createAddRecFromPHIWithCasts(const SCEVUnknown *SymbolicPHI); + /// Returns an expression for a GEP /// /// \p GEP The GEP. The indices contained in the GEP itself are ignored, @@ -1675,8 +1681,7 @@ class ScalarEvolution { (public) return F.getParent()->getDataLayout(); } - const SCEVPredicate *getEqualPredicate(const SCEVUnknown *LHS, - const SCEVConstant *RHS); + const SCEVPredicate *getEqualPredicate(const SCEV *LHS, const SCEV *RHS); const SCEVPredicate * getWrapPredicate(const SCEVAddRecExpr *AR, @@ -1692,6 +1697,19 @@ class ScalarEvolution { (public) SmallPtrSetImpl<const SCEVPredicate *> &Preds); private: + /// Similar to createAddRecFromPHI, but with the additional flexibility of + /// suggesting runtime overflow checks in case casts are encountered. + /// If successful, the analysis records that for this loop, \p SymbolicPHI, + /// which is the UnknownSCEV currently representing the PHI, can be rewritten + /// into an AddRec, assuming some predicates; The function then returns the + /// AddRec and the predicates as a pair, and caches this pair in + /// PredicatedSCEVRewrites. + /// If the analysis is not successful, a mapping from the \p SymbolicPHI to + /// itself (with no predicates) is recorded, and a nullptr with an empty + /// predicates vector is returned as a pair. + Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> + createAddRecFromPHIWithCastsImpl(const SCEVUnknown *SymbolicPHI); + /// Compute the backedge taken count knowing the interval difference, the /// stride and presence of the equality in the comparison. const SCEV *computeBECount(const SCEV *Delta, const SCEV *Stride, @@ -1722,6 +1740,12 @@ class ScalarEvolution { (public) FoldingSet<SCEVPredicate> UniquePreds; BumpPtrAllocator SCEVAllocator; + /// Cache tentative mappings from UnknownSCEVs in a Loop, to a SCEV expression + /// they can be rewritten into under certain predicates. + DenseMap<std::pair<const SCEVUnknown *, const Loop *>, + std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> + PredicatedSCEVRewrites; + /// The head of a linked list of all SCEVUnknown values that have been /// allocated. This is used by releaseMemory to locate them all and call /// their destructors. Modified: vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfo.h Wed Jul 19 07:02:10 2017 (r321184) @@ -155,6 +155,13 @@ class TargetTransformInfo { (public) int getGEPCost(Type *PointeeType, const Value *Ptr, ArrayRef<const Value *> Operands) const; + /// \brief Estimate the cost of a EXT operation when lowered. + /// + /// The contract for this function is the same as \c getOperationCost except + /// that it supports an interface that provides extra information specific to + /// the EXT operation. + int getExtCost(const Instruction *I, const Value *Src) const; + /// \brief Estimate the cost of a function call when lowered. /// /// The contract for this is the same as \c getOperationCost except that it @@ -849,6 +856,7 @@ class TargetTransformInfo::Concept { (public) virtual int getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy) = 0; virtual int getGEPCost(Type *PointeeType, const Value *Ptr, ArrayRef<const Value *> Operands) = 0; + virtual int getExtCost(const Instruction *I, const Value *Src) = 0; virtual int getCallCost(FunctionType *FTy, int NumArgs) = 0; virtual int getCallCost(const Function *F, int NumArgs) = 0; virtual int getCallCost(const Function *F, @@ -1021,6 +1029,9 @@ class TargetTransformInfo::Model final : public Target int getGEPCost(Type *PointeeType, const Value *Ptr, ArrayRef<const Value *> Operands) override { return Impl.getGEPCost(PointeeType, Ptr, Operands); + } + int getExtCost(const Instruction *I, const Value *Src) override { + return Impl.getExtCost(I, Src); } int getCallCost(FunctionType *FTy, int NumArgs) override { return Impl.getCallCost(FTy, NumArgs); Modified: vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/Analysis/TargetTransformInfoImpl.h Wed Jul 19 07:02:10 2017 (r321184) @@ -120,6 +120,10 @@ class TargetTransformInfoImplBase { (public) return SI.getNumCases(); } + int getExtCost(const Instruction *I, const Value *Src) { + return TTI::TCC_Basic; + } + unsigned getCallCost(FunctionType *FTy, int NumArgs) { assert(FTy && "FunctionType must be provided to this routine."); @@ -728,6 +732,8 @@ class TargetTransformInfoImplCRTPBase : public TargetT // nop on most sane targets. if (isa<CmpInst>(CI->getOperand(0))) return TTI::TCC_Free; + if (isa<SExtInst>(CI) || isa<ZExtInst>(CI) || isa<FPExtInst>(CI)) + return static_cast<T *>(this)->getExtCost(CI, Operands.back()); } return static_cast<T *>(this)->getOperationCost( Modified: vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/CodeGen/BasicTTIImpl.h Wed Jul 19 07:02:10 2017 (r321184) @@ -155,6 +155,18 @@ class BasicTTIImplBase : public TargetTransformInfoImp return BaseT::getGEPCost(PointeeType, Ptr, Operands); } + int getExtCost(const Instruction *I, const Value *Src) { + if (getTLI()->isExtFree(I)) + return TargetTransformInfo::TCC_Free; + + if (isa<ZExtInst>(I) || isa<SExtInst>(I)) + if (const LoadInst *LI = dyn_cast<LoadInst>(Src)) + if (getTLI()->isExtLoad(LI, I, DL)) + return TargetTransformInfo::TCC_Free; + + return TargetTransformInfo::TCC_Basic; + } + unsigned getIntrinsicCost(Intrinsic::ID IID, Type *RetTy, ArrayRef<const Value *> Arguments) { return BaseT::getIntrinsicCost(IID, RetTy, Arguments); Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineDominanceFrontier.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/MachineDominanceFrontier.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/CodeGen/MachineDominanceFrontier.h Wed Jul 19 07:02:10 2017 (r321184) @@ -23,27 +23,24 @@ class MachineDominanceFrontier : public MachineFunctio ForwardDominanceFrontierBase<MachineBasicBlock> Base; public: - using DomTreeT = DominatorTreeBase<MachineBasicBlock>; - using DomTreeNodeT = DomTreeNodeBase<MachineBasicBlock>; - using DomSetType = DominanceFrontierBase<MachineBasicBlock>::DomSetType; - using iterator = DominanceFrontierBase<MachineBasicBlock>::iterator; - using const_iterator = - DominanceFrontierBase<MachineBasicBlock>::const_iterator; + using DomTreeT = DomTreeBase<MachineBasicBlock>; + using DomTreeNodeT = DomTreeNodeBase<MachineBasicBlock>; + using DomSetType = DominanceFrontierBase<MachineBasicBlock, false>::DomSetType; + using iterator = DominanceFrontierBase<MachineBasicBlock, false>::iterator; + using const_iterator = + DominanceFrontierBase<MachineBasicBlock, false>::const_iterator; - MachineDominanceFrontier(const MachineDominanceFrontier &) = delete; - MachineDominanceFrontier & - operator=(const MachineDominanceFrontier &) = delete; + MachineDominanceFrontier(const MachineDominanceFrontier &) = delete; + MachineDominanceFrontier &operator=(const MachineDominanceFrontier &) = delete; - static char ID; + static char ID; - MachineDominanceFrontier(); + MachineDominanceFrontier(); - DominanceFrontierBase<MachineBasicBlock> &getBase() { - return Base; - } + DominanceFrontierBase<MachineBasicBlock, false> &getBase() { return Base; } - inline const std::vector<MachineBasicBlock*> &getRoots() const { - return Base.getRoots(); + inline const std::vector<MachineBasicBlock *> &getRoots() const { + return Base.getRoots(); } MachineBasicBlock *getRoot() const { @@ -98,7 +95,7 @@ class MachineDominanceFrontier : public MachineFunctio return Base.compareDomSet(DS1, DS2); } - bool compare(DominanceFrontierBase<MachineBasicBlock> &Other) const { + bool compare(DominanceFrontierBase<MachineBasicBlock, false> &Other) const { return Base.compare(Other); } Modified: vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/CodeGen/MachineDominators.h Wed Jul 19 07:02:10 2017 (r321184) @@ -28,13 +28,15 @@ namespace llvm { -template<> -inline void DominatorTreeBase<MachineBasicBlock>::addRoot(MachineBasicBlock* MBB) { +template <> +inline void DominatorTreeBase<MachineBasicBlock, false>::addRoot( + MachineBasicBlock *MBB) { this->Roots.push_back(MBB); } extern template class DomTreeNodeBase<MachineBasicBlock>; -extern template class DominatorTreeBase<MachineBasicBlock>; +extern template class DominatorTreeBase<MachineBasicBlock, false>; // DomTree +extern template class DominatorTreeBase<MachineBasicBlock, true>; // PostDomTree using MachineDomTreeNode = DomTreeNodeBase<MachineBasicBlock>; @@ -65,7 +67,7 @@ class MachineDominatorTree : public MachineFunctionPas mutable SmallSet<MachineBasicBlock *, 32> NewBBs; /// The DominatorTreeBase that is used to compute a normal dominator tree - std::unique_ptr<DominatorTreeBase<MachineBasicBlock>> DT; + std::unique_ptr<DomTreeBase<MachineBasicBlock>> DT; /// \brief Apply all the recorded critical edges to the DT. /// This updates the underlying DT information in a way that uses @@ -79,9 +81,8 @@ class MachineDominatorTree : public MachineFunctionPas MachineDominatorTree(); - DominatorTreeBase<MachineBasicBlock> &getBase() { - if (!DT) - DT.reset(new DominatorTreeBase<MachineBasicBlock>(false)); + DomTreeBase<MachineBasicBlock> &getBase() { + if (!DT) DT.reset(new DomTreeBase<MachineBasicBlock>()); applySplitCriticalEdges(); return *DT; } Modified: vendor/llvm/dist/include/llvm/CodeGen/MachinePostDominators.h ============================================================================== --- vendor/llvm/dist/include/llvm/CodeGen/MachinePostDominators.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/CodeGen/MachinePostDominators.h Wed Jul 19 07:02:10 2017 (r321184) @@ -26,7 +26,7 @@ namespace llvm { /// struct MachinePostDominatorTree : public MachineFunctionPass { private: - DominatorTreeBase<MachineBasicBlock> *DT; + PostDomTreeBase<MachineBasicBlock> *DT; public: static char ID; Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h Wed Jul 19 07:02:10 2017 (r321184) @@ -17,7 +17,6 @@ namespace llvm { namespace codeview { class TypeCollection; -class TypeServerHandler; class TypeVisitorCallbacks; enum VisitorDataSource { @@ -31,11 +30,9 @@ enum VisitorDataSource { Error visitTypeRecord(CVType &Record, TypeIndex Index, TypeVisitorCallbacks &Callbacks, - VisitorDataSource Source = VDS_BytesPresent, - TypeServerHandler *TS = nullptr); + VisitorDataSource Source = VDS_BytesPresent); Error visitTypeRecord(CVType &Record, TypeVisitorCallbacks &Callbacks, - VisitorDataSource Source = VDS_BytesPresent, - TypeServerHandler *TS = nullptr); + VisitorDataSource Source = VDS_BytesPresent); Error visitMemberRecord(CVMemberRecord Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source = VDS_BytesPresent); @@ -46,12 +43,9 @@ Error visitMemberRecordStream(ArrayRef<uint8_t> FieldL TypeVisitorCallbacks &Callbacks); Error visitTypeStream(const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks, - VisitorDataSource Source = VDS_BytesPresent, - TypeServerHandler *TS = nullptr); -Error visitTypeStream(CVTypeRange Types, TypeVisitorCallbacks &Callbacks, - TypeServerHandler *TS = nullptr); -Error visitTypeStream(TypeCollection &Types, TypeVisitorCallbacks &Callbacks, - TypeServerHandler *TS = nullptr); + VisitorDataSource Source = VDS_BytesPresent); +Error visitTypeStream(CVTypeRange Types, TypeVisitorCallbacks &Callbacks); +Error visitTypeStream(TypeCollection &Types, TypeVisitorCallbacks &Callbacks); } // end namespace codeview } // end namespace llvm Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h Wed Jul 19 07:02:10 2017 (r321184) @@ -84,7 +84,7 @@ class CodeViewRecordIO { (public) Error mapEncodedInteger(uint64_t &Value); Error mapEncodedInteger(APSInt &Value); Error mapStringZ(StringRef &Value); - Error mapGuid(StringRef &Guid); + Error mapGuid(GUID &Guid); Error mapStringZVectorZ(std::vector<StringRef> &Value); Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Formatters.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Formatters.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/Formatters.h Wed Jul 19 07:02:10 2017 (r321184) @@ -12,6 +12,7 @@ #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringRef.h" +#include "llvm/DebugInfo/CodeView/GUID.h" #include "llvm/DebugInfo/CodeView/TypeIndex.h" #include "llvm/Support/FormatAdapters.h" #include "llvm/Support/FormatVariadic.h" @@ -31,7 +32,7 @@ class GuidAdapter final : public FormatAdapter<ArrayRe explicit GuidAdapter(ArrayRef<uint8_t> Guid); explicit GuidAdapter(StringRef Guid); - void format(raw_ostream &Stream, StringRef Style) override ; + void format(raw_ostream &Stream, StringRef Style) override; }; } // end namespace detail @@ -57,6 +58,13 @@ template <> struct format_provider<codeview::TypeIndex if (V.isSimple()) Stream << " (" << codeview::TypeIndex::simpleTypeName(V) << ")"; } + } +}; + +template <> struct format_provider<codeview::GUID> { + static void format(const codeview::GUID &V, llvm::raw_ostream &Stream, + StringRef Style) { + Stream << V; } }; Added: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/GUID.h Wed Jul 19 07:02:10 2017 (r321184) @@ -0,0 +1,55 @@ +//===- GUID.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_CODEVIEW_GUID_H +#define LLVM_DEBUGINFO_CODEVIEW_GUID_H + +#include <cstdint> +#include <cstring> + +namespace llvm { +class raw_ostream; + +namespace codeview { + +/// This represents the 'GUID' type from windows.h. +struct GUID { + uint8_t Guid[16]; +}; + +inline bool operator==(const GUID &LHS, const GUID &RHS) { + return 0 == ::memcmp(LHS.Guid, RHS.Guid, sizeof(LHS.Guid)); +} + +inline bool operator<(const GUID &LHS, const GUID &RHS) { + return ::memcmp(LHS.Guid, RHS.Guid, sizeof(LHS.Guid)) < 0; +} + +inline bool operator<=(const GUID &LHS, const GUID &RHS) { + return ::memcmp(LHS.Guid, RHS.Guid, sizeof(LHS.Guid)) <= 0; +} + +inline bool operator>(const GUID &LHS, const GUID &RHS) { + return !(LHS <= RHS); +} + +inline bool operator>=(const GUID &LHS, const GUID &RHS) { + return !(LHS < RHS); +} + +inline bool operator!=(const GUID &LHS, const GUID &RHS) { + return !(LHS == RHS); +} + +raw_ostream &operator<<(raw_ostream &OS, const GUID &Guid); + +} // namespace codeview +} // namespace llvm + +#endif Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/SymbolRecord.h Wed Jul 19 07:02:10 2017 (r321184) @@ -848,7 +848,7 @@ class BuildInfoSym : public SymbolRecord { (public) : SymbolRecord(SymbolRecordKind::BuildInfoSym), RecordOffset(RecordOffset) {} - uint32_t BuildId; + TypeIndex BuildId; uint32_t RecordOffset; }; Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeRecord.h Wed Jul 19 07:02:10 2017 (r321184) @@ -18,6 +18,7 @@ #include "llvm/ADT/iterator_range.h" #include "llvm/DebugInfo/CodeView/CVRecord.h" #include "llvm/DebugInfo/CodeView/CodeView.h" +#include "llvm/DebugInfo/CodeView/GUID.h" #include "llvm/DebugInfo/CodeView/TypeIndex.h" #include "llvm/Support/BinaryStreamArray.h" #include "llvm/Support/Endian.h" @@ -539,15 +540,17 @@ class TypeServer2Record : public TypeRecord { public: TypeServer2Record() = default; explicit TypeServer2Record(TypeRecordKind Kind) : TypeRecord(Kind) {} - TypeServer2Record(StringRef Guid, uint32_t Age, StringRef Name) - : TypeRecord(TypeRecordKind::TypeServer2), Guid(Guid), Age(Age), - Name(Name) {} + TypeServer2Record(StringRef GuidStr, uint32_t Age, StringRef Name) + : TypeRecord(TypeRecordKind::TypeServer2), Age(Age), Name(Name) { + assert(GuidStr.size() == 16 && "guid isn't 16 bytes"); + ::memcpy(Guid.Guid, GuidStr.data(), 16); + } - StringRef getGuid() const { return Guid; } + const GUID &getGuid() const { return Guid; } uint32_t getAge() const { return Age; } StringRef getName() const { return Name; } - StringRef Guid; + GUID Guid; uint32_t Age; StringRef Name; }; Modified: vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h Wed Jul 19 07:02:10 2017 (r321184) @@ -19,7 +19,6 @@ namespace llvm { namespace codeview { class TypeIndex; -class TypeServerHandler; class TypeTableBuilder; /// \brief Merge one set of type records into another. This method assumes @@ -31,16 +30,13 @@ class TypeTableBuilder; /// type stream, that contains the index of the corresponding type record /// in the destination stream. /// -/// \param Handler (optional) If non-null, an interface that gets invoked -/// to handle type server records. -/// /// \param Types The collection of types to merge in. /// /// \returns Error::success() if the operation succeeded, otherwise an /// appropriate error code. Error mergeTypeRecords(TypeTableBuilder &Dest, SmallVectorImpl<TypeIndex> &SourceToDest, - TypeServerHandler *Handler, const CVTypeArray &Types); + const CVTypeArray &Types); /// \brief Merge one set of id records into another. This method assumes /// that all records are id records, and there are no Type records present. @@ -65,7 +61,7 @@ Error mergeTypeRecords(TypeTableBuilder &Dest, /// appropriate error code. Error mergeIdRecords(TypeTableBuilder &Dest, ArrayRef<TypeIndex> Types, SmallVectorImpl<TypeIndex> &SourceToDest, - const CVTypeArray &Ids); + const CVTypeArray &Ids); /// \brief Merge a unified set of type and id records, splitting them into /// separate output streams. @@ -78,9 +74,6 @@ Error mergeIdRecords(TypeTableBuilder &Dest, ArrayRef< /// id stream, that contains the index of the corresponding id record /// in the destination stream. /// -/// \param Handler (optional) If non-null, an interface that gets invoked -/// to handle type server records. -/// /// \param IdsAndTypes The collection of id records to merge in. /// /// \returns Error::success() if the operation succeeded, otherwise an @@ -88,8 +81,7 @@ Error mergeIdRecords(TypeTableBuilder &Dest, ArrayRef< Error mergeTypeAndIdRecords(TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes, SmallVectorImpl<TypeIndex> &SourceToDest, - TypeServerHandler *Handler, - const CVTypeArray &IdsAndTypes); + const CVTypeArray &IdsAndTypes); } // end namespace codeview } // end namespace llvm Modified: vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h ============================================================================== --- vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h Wed Jul 19 03:19:44 2017 (r321183) +++ vendor/llvm/dist/include/llvm/DebugInfo/DWARF/DWARFUnit.h Wed Jul 19 07:02:10 2017 (r321184) @@ -238,6 +238,34 @@ class DWARFUnit { (public) uint8_t getUnitType() const { return UnitType; } + static bool isValidUnitType(uint8_t UnitType) { + return UnitType == dwarf::DW_UT_compile || UnitType == dwarf::DW_UT_type || + UnitType == dwarf::DW_UT_partial || + UnitType == dwarf::DW_UT_skeleton || + UnitType == dwarf::DW_UT_split_compile || + UnitType == dwarf::DW_UT_split_type; + } + + /// \brief Return the number of bytes for the header of a unit of + /// UnitType type. + /// + /// This function must be called with a valid unit type which in + /// DWARF5 is defined as one of the following six types. + static uint32_t getDWARF5HeaderSize(uint8_t UnitType) { + switch (UnitType) { + case dwarf::DW_UT_compile: + case dwarf::DW_UT_partial: + return 12; + case dwarf::DW_UT_skeleton: + case dwarf::DW_UT_split_compile: + return 20; + case dwarf::DW_UT_type: + case dwarf::DW_UT_split_type: + return 24; + } + llvm_unreachable("Invalid UnitType."); + } + *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707190702.v6J72Bex090654>