aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorAnton Afanasyev <anton.a.afanasyev@gmail.com>2019-05-03 10:30:59 +0000
committerAnton Afanasyev <anton.a.afanasyev@gmail.com>2019-05-03 10:30:59 +0000
commit9c20156de39b377190d7a91783d61877b303fe35 (patch)
treeb838e08111308187c22900e8ad314c7e13d6d40a /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent88f9117168f71f652e212b9c1f191c3a855600ed (diff)
downloadllvm-9c20156de39b377190d7a91783d61877b303fe35.zip
llvm-9c20156de39b377190d7a91783d61877b303fe35.tar.gz
llvm-9c20156de39b377190d7a91783d61877b303fe35.tar.bz2
[MIR] Add simple PRE pass to MachineCSE
This is the second part of the commit fixing PR38917 (hoisting partitially redundant machine instruction). Most of PRE (partitial redundancy elimination) and CSE work is done on LLVM IR, but some of redundancy arises during DAG legalization. Machine CSE is not enough to deal with it. This simple PRE implementation works a little bit intricately: it passes before CSE, looking for partitial redundancy and transforming it to fully redundancy, anticipating that the next CSE step will eliminate this created redundancy. If CSE doesn't eliminate this, than created instruction will remain dead and eliminated later by Remove Dead Machine Instructions pass. The third part of the commit is supposed to refactor MachineCSE, to make it more clear and to merge MachinePRE with MachineCSE, so one need no rely on further Remove Dead pass to clear instrs not eliminated by CSE. First step: https://reviews.llvm.org/D54839 Fixes llvm.org/PR38917 Reviewers: RKSimon Subscribers: hfinkel, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D56772 llvm-svn: 359870
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
0 files changed, 0 insertions, 0 deletions