aboutsummaryrefslogtreecommitdiffstats
path: root/cse.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2004-11-27 13:29:00 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-07 21:05:07 -0700
commit073b3c2cca2e596cf230dcd7646050747f7d00d0 (patch)
tree91457387b7acdadd0f2cc8b899b79a3348e69532 /cse.c
parent602f6b6c0d411876778852995e8131760016294e (diff)
downloadsparse-073b3c2cca2e596cf230dcd7646050747f7d00d0.tar.gz
sparse-073b3c2cca2e596cf230dcd7646050747f7d00d0.tar.xz
sparse-073b3c2cca2e596cf230dcd7646050747f7d00d0.zip
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.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/cse.c b/cse.c
index b55c602..4c91e56 100644
--- a/cse.c
+++ b/cse.c
@@ -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;