diff options
author | Owen Anderson <resistor@mac.com> | 2010-09-11 05:48:06 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-09-11 05:48:06 +0000 |
commit | 26c5663283f89f1624304723ebe8c25d253463a3 (patch) | |
tree | 896fb72e24c4e16fdfd238c9044e13789e7916db /test/MC/MachO/tbss.s | |
parent | 1c4e934666b3fa672a3dd8f933671da4b95447db (diff) | |
download | external_llvm-26c5663283f89f1624304723ebe8c25d253463a3.zip external_llvm-26c5663283f89f1624304723ebe8c25d253463a3.tar.gz external_llvm-26c5663283f89f1624304723ebe8c25d253463a3.tar.bz2 |
Invert and-of-or into or-of-and when doing so would allow us to clear bits of the and's mask.
This can result in increased opportunities for store narrowing in code generation. Update a number of
tests for this change. This fixes <rdar://problem/8285027>.
Additionally, because this inverts the order of ors and ands, some patterns for optimizing or-of-and-of-or
no longer fire in instances where they did originally. Add a simple transform which recaptures most of these
opportunities: if we have an or-of-constant-or and have failed to fold away the inner or, commute the order
of the two ors, to give the non-constant or a chance for simplification instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113679 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/MachO/tbss.s')
0 files changed, 0 insertions, 0 deletions