diff options
author | Sanjay Patel <spatel@rotateright.com> | 2021-07-23 09:01:26 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2021-07-23 09:39:32 -0400 |
commit | f060aa1cf3f42ca967c3f63e18381d3579bb12d9 (patch) | |
tree | d28e84bdfd765e65e66997fa582ebd33d6c28f7c /clang/lib/Frontend/CreateInvocationFromCommandLine.cpp | |
parent | 028eb436546a75a434931f9bbbb073b353920a74 (diff) | |
download | llvm-f060aa1cf3f42ca967c3f63e18381d3579bb12d9.zip llvm-f060aa1cf3f42ca967c3f63e18381d3579bb12d9.tar.gz llvm-f060aa1cf3f42ca967c3f63e18381d3579bb12d9.tar.bz2 |
[x86] improve CMOV codegen by pushing add into operands
This is not the transform direction we want in general,
but by the time we have a CMOV, we've already tried
everything else that could be better.
The transform increases the uses of the other add operand,
but that is safe according to Alive2:
https://alive2.llvm.org/ce/z/Yn6p-A
We could probably extend this to other binops (not just add).
This is the motivating pattern discussed in:
https://llvm.org/PR51069
The test with i8 shows a missed fold because there's a trunc
sitting in front of the add. That can be handled with a small
follow-up.
Differential Revision: https://reviews.llvm.org/D106607
Diffstat (limited to 'clang/lib/Frontend/CreateInvocationFromCommandLine.cpp')
0 files changed, 0 insertions, 0 deletions