aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/SafeStack.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2020-02-13 16:08:15 -0500
committerSanjay Patel <spatel@rotateright.com>2020-02-13 17:23:27 -0500
commit19b62b79db1bb154b40e8baba9a28ab8aa935b6b (patch)
tree539aacfb0a34477e489d5342113738c6531471e3 /llvm/lib/CodeGen/SafeStack.cpp
parentfe36127982e0a5889cc0653718e62ba6acccf7c4 (diff)
downloadllvm-19b62b79db1bb154b40e8baba9a28ab8aa935b6b.zip
llvm-19b62b79db1bb154b40e8baba9a28ab8aa935b6b.tar.gz
llvm-19b62b79db1bb154b40e8baba9a28ab8aa935b6b.tar.bz2
[VectorCombine] try to form vector binop to eliminate an extract element
binop (extelt X, C), (extelt Y, C) --> extelt (binop X, Y), C This is a transform that has been considered for canonicalization (instcombine) in the past because it reduces instruction count. But as shown in the x86 tests, it's impossible to know if it's profitable without a cost model. There are many potential target constraints to consider. We have implemented similar transforms in the backend (DAGCombiner and target-specific), but I don't think we have this exact fold there either (and if we did it in SDAG, it wouldn't work across blocks). Note: this patch was intended to handle the more general case where the extract indexes do not match, but it got too big, so I scaled it back to this pattern for now. Differential Revision: https://reviews.llvm.org/D74495
Diffstat (limited to 'llvm/lib/CodeGen/SafeStack.cpp')
0 files changed, 0 insertions, 0 deletions