aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorRoman Lebedev <lebedev.ri@gmail.com>2020-08-17 23:15:30 +0300
committerRoman Lebedev <lebedev.ri@gmail.com>2020-08-18 00:45:18 +0300
commit03127f795b8244c1039c18d4391374707a3dc75e (patch)
treed5ed41d316daa97a3cde52c277da109bda783151 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parentf4f673e0e36937954c2410b2dfd5ca8e39ccffa5 (diff)
downloadllvm-03127f795b8244c1039c18d4391374707a3dc75e.zip
llvm-03127f795b8244c1039c18d4391374707a3dc75e.tar.gz
llvm-03127f795b8244c1039c18d4391374707a3dc75e.tar.bz2
[InstCombine] PHI-aware aggregate reconstruction: correctly detect "use" basic block
While the original implementation added in D85787 / ae7f08812e0995481eb345cecc5dd4529829ba44 is not incorrect, it is known to be suboptimal. In particular, it is not incorrect to use the basic block in which the original `insertvalue` instruction is located as the merge point, that is not necessarily optimal, as `@test6` shows. We should look at all the AggElts, and, if they are all defined in the same basic block, then that is the basic block we should use. On RawSpeed library, this catches +4% (+50) more cases. On vanilla LLVM test-suits, this catches +12% (+92) more cases.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions