[PATCH] D57541: [DAGCombiner] Eliminate dead stores to stack.

Clement Courbet via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 31 13:33:09 PST 2019


courbet created this revision.
Herald added subscribers: llvm-commits, Petar.Avramovic, jsji, kristina, jocewei, rupprecht, PkmX, arphaman, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, gbedwell, delcypher, niosHD, sabuasal, apazos, simoncook, jakehehrlich, johnrusso, rbar, asb, kbarton, aheejin, hiraditya, jgravelle-google, arichardson, sbc100, javed.absar, mgorny, nhaehnle, jvesely, nemanjai, emaste, dschuff, arsenm, sanjoy, jholewinski.
Herald added a reviewer: espindola.
Herald added a reviewer: andreadb.
Herald added a reviewer: alexshap.
Herald added a reviewer: serge-sans-paille.
Herald added a reviewer: rupprecht.

A store to an object whose lifetime is about to end can be removed.

See PR40550 for motivation.


Repository:
  rL LLVM

https://reviews.llvm.org/D57541

Files:
  CMakeLists.txt
  cmake/modules/AddLLVM.cmake
  docs/CommandGuide/llvm-exegesis.rst
  docs/CommandGuide/llvm-symbolizer.rst
  docs/CompileCudaWithLLVM.rst
  docs/HowToSubmitABug.rst
  docs/LibFuzzer.rst
  docs/TestSuiteGuide.md
  docs/TestSuiteMakefileGuide.rst
  docs/TestingGuide.rst
  include/llvm/Analysis/ScalarEvolution.h
  include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
  include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  include/llvm/DebugInfo/PDB/Native/DbiStream.h
  include/llvm/IR/CallSite.h
  include/llvm/IR/InstrTypes.h
  include/llvm/IR/Instructions.h
  include/llvm/IR/IntrinsicsWebAssembly.td
  include/llvm/MC/MCAsmBackend.h
  include/llvm/Support/CodeGen.h
  lib/Analysis/DependenceAnalysis.cpp
  lib/Analysis/LoopAccessAnalysis.cpp
  lib/Analysis/ScalarEvolution.cpp
  lib/Analysis/ValueTracking.cpp
  lib/CodeGen/AsmPrinter/WasmException.cpp
  lib/CodeGen/CodeGenPrepare.cpp
  lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  lib/CodeGen/MachineVerifier.cpp
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/CodeGen/SelectionDAG/TargetLowering.cpp
  lib/CodeGen/WasmEHPrepare.cpp
  lib/DebugInfo/PDB/Native/DbiStream.cpp
  lib/IR/Instruction.cpp
  lib/IR/Value.cpp
  lib/MC/MCAssembler.cpp
  lib/MC/MCParser/AsmParser.cpp
  lib/Object/WasmObjectFile.cpp
  lib/Target/AArch64/AArch64AsmPrinter.cpp
  lib/Target/AArch64/AArch64RegisterBankInfo.cpp
  lib/Target/AArch64/AArch64TargetMachine.cpp
  lib/Target/AMDGPU/AMDGPUISelLowering.h
  lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
  lib/Target/AMDGPU/SIInstrInfo.cpp
  lib/Target/AMDGPU/SIInstrInfo.h
  lib/Target/ARM/ARMISelDAGToDAG.cpp
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/PowerPC/PPCFastISel.cpp
  lib/Target/PowerPC/PPCInstrInfo.cpp
  lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
  lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
  lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
  lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
  lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
  lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
  lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
  lib/Target/WebAssembly/WebAssemblyEHRestoreStackPointer.cpp
  lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
  lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
  lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
  lib/Target/WebAssembly/WebAssemblyISelLowering.h
  lib/Target/WebAssembly/WebAssemblyInstrControl.td
  lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
  lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
  lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
  lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
  lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
  lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
  lib/Target/WebAssembly/WebAssemblyUtilities.cpp
  lib/Target/WebAssembly/WebAssemblyUtilities.h
  lib/Target/X86/X86FloatingPoint.cpp
  lib/Target/X86/X86InstrAVX512.td
  lib/Target/X86/X86InstrFPStack.td
  lib/Target/X86/X86InstrInfo.td
  lib/Target/X86/X86InstrSSE.td
  lib/Target/X86/X86ScheduleBtVer2.td
  lib/Transforms/IPO/IPConstantPropagation.cpp
  lib/Transforms/InstCombine/InstCombineSelect.cpp
  lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  lib/Transforms/Scalar/LoopSimplifyCFG.cpp
  lib/Transforms/Utils/LoopUtils.cpp
  test/CodeGen/AArch64/GlobalISel/legalize-inttoptr-xfail-1.mir
  test/CodeGen/AArch64/GlobalISel/legalize-inttoptr-xfail-2.mir
  test/CodeGen/AArch64/GlobalISel/legalize-merge-values.mir
  test/CodeGen/AArch64/GlobalISel/regbankselect-unmerge-vec.mir
  test/CodeGen/AArch64/bool-ext-inc.ll
  test/CodeGen/AArch64/win64-jumptable.ll
  test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-load.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
  test/CodeGen/AMDGPU/GlobalISel/legalize-store.mir
  test/CodeGen/AMDGPU/GlobalISel/regbankselect-ptrtoint.mir
  test/CodeGen/AMDGPU/fix-wwm-vgpr-copy.ll
  test/CodeGen/ARM/load.ll
  test/CodeGen/PowerPC/convert-rr-to-ri-instr-add.mir
  test/CodeGen/PowerPC/pr24546.ll
  test/CodeGen/SystemZ/debuginstr-cgp.mir
  test/CodeGen/WebAssembly/annotations.mir
  test/CodeGen/WebAssembly/call.ll
  test/CodeGen/WebAssembly/cfg-stackify-eh.ll
  test/CodeGen/WebAssembly/cfg-stackify-eh.mir
  test/CodeGen/WebAssembly/exception.ll
  test/CodeGen/WebAssembly/function-bitcasts-varargs.ll
  test/CodeGen/WebAssembly/function-bitcasts.ll
  test/CodeGen/WebAssembly/main-declaration.ll
  test/CodeGen/WebAssembly/main-no-args.ll
  test/CodeGen/WebAssembly/main-three-args.ll
  test/CodeGen/WebAssembly/main-with-args.ll
  test/CodeGen/WebAssembly/simd-build-vector.ll
  test/CodeGen/WebAssembly/simd-scalar-to-vector.ll
  test/CodeGen/WebAssembly/wasmehprepare.ll
  test/CodeGen/X86/GlobalISel/legalize-memop-scalar-32.mir
  test/CodeGen/X86/GlobalISel/legalize-memop-scalar-64.mir
  test/CodeGen/X86/GlobalISel/legalize-memop-scalar.mir
  test/CodeGen/X86/GlobalISel/legalize-trunc.mir
  test/CodeGen/X86/GlobalISel/select-GV-32.mir
  test/CodeGen/X86/GlobalISel/select-GV-64.mir
  test/CodeGen/X86/GlobalISel/select-GV.mir
  test/CodeGen/X86/abi-isel.ll
  test/CodeGen/X86/avx512-hadd-hsub.ll
  test/CodeGen/X86/avx512-shuffles/partial_permute.ll
  test/CodeGen/X86/bool-ext-inc.ll
  test/CodeGen/X86/combine-sbb.ll
  test/CodeGen/X86/madd.ll
  test/CodeGen/X86/min-legal-vector-width.ll
  test/CodeGen/X86/sad.ll
  test/CodeGen/X86/sse-schedule.ll
  test/CodeGen/X86/sse2-schedule.ll
  test/CodeGen/X86/swap.ll
  test/CodeGen/X86/vector-reduce-add-widen.ll
  test/CodeGen/X86/vector-reduce-add.ll
  test/CodeGen/X86/vector-reduce-and-widen.ll
  test/CodeGen/X86/vector-reduce-and.ll
  test/CodeGen/X86/vector-reduce-fadd-fast.ll
  test/CodeGen/X86/vector-reduce-fmul-fast.ll
  test/CodeGen/X86/vector-reduce-mul-widen.ll
  test/CodeGen/X86/vector-reduce-mul.ll
  test/CodeGen/X86/vector-reduce-or-widen.ll
  test/CodeGen/X86/vector-reduce-or.ll
  test/CodeGen/X86/vector-reduce-xor-widen.ll
  test/CodeGen/X86/vector-reduce-xor.ll
  test/CodeGen/X86/vector-shuffle-512-v16.ll
  test/DebugInfo/COFF/inlining.ll
  test/DebugInfo/COFF/lexicalblock.ll
  test/DebugInfo/Generic/incorrect-variable-debugloc1.ll
  test/DebugInfo/NVPTX/dbg-value-const-byref.ll
  test/DebugInfo/X86/dbg-value-frame-index-2.ll
  test/DebugInfo/X86/pr40427.ll
  test/MC/AsmParser/debug-only-comments.s
  test/MC/RISCV/align.s
  test/MC/WebAssembly/annotations.s
  test/MC/WebAssembly/basic-assembly.s
  test/Transforms/IPConstantProp/arg-count-mismatch.ll
  test/Transforms/IPConstantProp/arg-type-mismatch.ll
  test/Transforms/InstCombine/X86/addcarry.ll
  test/Transforms/InstCombine/apint-shift.ll
  test/Transforms/InstCombine/fmul-exp.ll
  test/Transforms/InstCombine/fmul-exp2.ll
  test/Transforms/InstCombine/saturating-add-sub.ll
  test/Transforms/InstCombine/zext-bool-add-sub.ll
  test/Transforms/LoopVectorize/no_switch_disable_vectorization.ll
  test/Verifier/test_g_addrspacecast.mir
  test/Verifier/test_g_inttoptr.mir
  test/Verifier/test_g_load.mir
  test/Verifier/test_g_ptrtoint.mir
  test/Verifier/test_g_store.mir
  test/tools/llvm-exegesis/X86/inverse_throughput-by-opcode-name.s
  test/tools/llvm-mca/X86/BtVer2/int-to-fpu-forwarding-2.s
  test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
  test/tools/llvm-mca/X86/BtVer2/resources-sse1.s
  test/tools/llvm-mca/X86/BtVer2/resources-sse2.s
  test/tools/llvm-nm/lit.local.cfg
  test/tools/llvm-nm/wasm/extern-only.ll
  test/tools/llvm-nm/wasm/lit.local.cfg
  test/tools/llvm-objcopy/ELF/bad-build-id.test
  test/tools/llvm-objcopy/ELF/discard-locals-rel.test
  test/tools/llvm-objcopy/ELF/discard-locals.test
  test/tools/llvm-objcopy/ELF/discard-mix-local-and-all.test
  test/tools/llvm-objcopy/ELF/set-section-flags-and-rename.test
  test/tools/llvm-objcopy/ELF/set-section-flags-multiple.test
  test/tools/llvm-objcopy/ELF/set-section-flags.test
  test/tools/llvm-pdbdump/Inputs/FPOTest.pdb
  test/tools/llvm-pdbdump/fpo-data.test
  tools/llvm-exegesis/lib/BenchmarkResult.cpp
  tools/llvm-exegesis/lib/BenchmarkResult.h
  tools/llvm-exegesis/lib/BenchmarkRunner.h
  tools/llvm-exegesis/lib/Latency.cpp
  tools/llvm-exegesis/lib/Latency.h
  tools/llvm-exegesis/lib/Target.cpp
  tools/llvm-exegesis/lib/Target.h
  tools/llvm-exegesis/llvm-exegesis.cpp
  tools/llvm-objcopy/COFF/COFFObjcopy.cpp
  tools/llvm-objcopy/COFF/COFFObjcopy.h
  tools/llvm-objcopy/CopyConfig.cpp
  tools/llvm-objcopy/CopyConfig.h
  tools/llvm-objcopy/ELF/ELFObjcopy.cpp
  tools/llvm-objcopy/ELF/ELFObjcopy.h
  tools/llvm-objcopy/ObjcopyOpts.td
  tools/llvm-objcopy/StripOpts.td
  tools/llvm-objcopy/llvm-objcopy.cpp
  tools/llvm-pdbutil/DumpOutputStyle.cpp
  tools/llvm-readobj/ELFDumper.cpp
  tools/llvm-shlib/CMakeLists.txt
  tools/llvm-shlib/gen-msvc-exports.py
  unittests/Support/VirtualFileSystemTest.cpp
  unittests/Target/WebAssembly/WebAssemblyExceptionInfoTest.cpp
  utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
  utils/gn/secondary/llvm/lib/Target/ARM/BUILD.gn
  utils/gn/secondary/llvm/lib/Target/PowerPC/BUILD.gn
  utils/lit/setup.py
  utils/release/build_llvm_package.bat
  utils/release/merge-request.sh





More information about the llvm-commits mailing list