diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-27 13:29:00 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-07 21:05:07 -0700 |
commit | 073b3c2cca2e596cf230dcd7646050747f7d00d0 (patch) | |
tree | 91457387b7acdadd0f2cc8b899b79a3348e69532 /cse.c | |
parent | 602f6b6c0d411876778852995e8131760016294e (diff) | |
download | sparse-073b3c2cca2e596cf230dcd7646050747f7d00d0.tar.gz |
Add "memop" simplification phase.
It's a bit more simple-minded than the symbol simplification,
and it can be more costly. So we start off with the (cheap)
symbol simplification algorithm, and then use this new more
generic phase later.
This allows us to remove extra loads (and, in theory, stores,
but the dead store elimination is so simple-minded right now
that it's effectively useless).
Diffstat (limited to 'cse.c')
-rw-r--r-- | cse.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -293,6 +293,7 @@ void cleanup_and_cse(struct entrypoint *ep) { int i; + simplify_memops(ep); repeat: repeat_phase = 0; clean_up_insns(ep); @@ -320,7 +321,7 @@ repeat: } if (repeat_phase & REPEAT_SYMBOL_CLEANUP) - simplify_symbol_usage(ep); + simplify_memops(ep); if (repeat_phase & REPEAT_CSE) goto repeat; |