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...
Dimitry Andric
dim at FreeBSD.org
Wed Jul 19 07:02:15 UTC 2017
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 at chromium.org
T: x86
O: Windows
-N: Renato Golin
-E: renato.golin at linaro.org
-T: ARM
-O: Linux
-
N: Diana Picus
E: diana.picus at 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 ***
More information about the svn-src-all
mailing list