diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-05-30 20:37:18 +0000 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-05-30 20:37:18 +0000 |
commit | 05ad5fd213cf5ee16c5ce5bb653fb92fe381a442 (patch) | |
tree | 28f576332cd8f8d56f3bc7b633dd1ee7d6c3a3ea /clang/lib/AST/ExprConstant.cpp | |
parent | 1d9ec7a81b7651d8f02e28cfb328e2a034941a8c (diff) | |
download | bcm5719-llvm-05ad5fd213cf5ee16c5ce5bb653fb92fe381a442.tar.gz bcm5719-llvm-05ad5fd213cf5ee16c5ce5bb653fb92fe381a442.zip |
[DAGCombiner][X86][AArch64][SPARC][SystemZ] y - (x + C) -> (y - x) - C fold. Try 3
Summary:
Direct sibling of D62223 patch.
While i don't have a direct motivational pattern for this,
it would seem to make sense to handle both patterns (or none),
for symmetry?
The aarch64 changes look neutral;
sparc and systemz look like improvement (one less instruction each);
x86 changes - 32bit case improves, 64bit case shows that LEA no longer
gets constructed, which may be because that whole test is `-mattr=+slow-lea,+slow-3ops-lea`
https://rise4fun.com/Alive/ffh
This is a recommit, originally committed in rL361852, but reverted
to investigate test-suite compile-time hangs, and then reverted in
rL362109 to fix missing constant folds that were causing
endless combine loops.
Reviewers: RKSimon, craig.topper, spatel, t.p.northover
Reviewed By: t.p.northover
Subscribers: t.p.northover, jyknight, javed.absar, kristof.beyls, fedor.sergeev, jrtc27, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62252
llvm-svn: 362143
Diffstat (limited to 'clang/lib/AST/ExprConstant.cpp')
0 files changed, 0 insertions, 0 deletions