diff options
author | Sanjay Patel <spatel@rotateright.com> | 2021-07-28 09:07:45 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2021-07-28 09:10:33 -0400 |
commit | 4c41caa2871095cf1e936b0eea10079c60f864dc (patch) | |
tree | 8495c5bc89e8d844db60ec3c6af9007e271ee3aa /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 960cb490dd16961c61b541efbcc95eb085464ad8 (diff) | |
download | llvm-4c41caa2871095cf1e936b0eea10079c60f864dc.zip llvm-4c41caa2871095cf1e936b0eea10079c60f864dc.tar.gz llvm-4c41caa2871095cf1e936b0eea10079c60f864dc.tar.bz2 |
[x86] improve CMOV codegen by pushing add into operands, part 3
In this episode, we are trying to avoid an x86 micro-arch quirk where complex
(3 operand) LEA potentially costs significantly more than simple LEA. So we
simultaneously push and pull the math around the CMOV to balance the operations.
I looked at the debug spew during instruction selection and decided against
trying a later DAGToDAG transform -- it seems very difficult to match if the
trailing memops are already selected and managing the creation of extra
instructions at that level is always tricky.
Differential Revision: https://reviews.llvm.org/D106918
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions