diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-11-26 20:11:58 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-11-26 20:11:58 -0800 |
commit | beac7fcc9cf4c7533d658e7c4839b715d6c714cd (patch) | |
tree | 0562347684bee87860382450767aa0b9a1eec3f7 /parser.c | |
parent | 6afada2bbf58ed9ba6a8701bb7ec56633cb2633e (diff) | |
download | txr-beac7fcc9cf4c7533d658e7c4839b715d6c714cd.tar.gz txr-beac7fcc9cf4c7533d658e7c4839b715d6c714cd.tar.bz2 txr-beac7fcc9cf4c7533d658e7c4839b715d6c714cd.zip |
compiler: replace late-peephole pattern with real approach.
* stdlib/optimize.tl (basic-blocks merge-jump-thunks): For each
group of candidate jump-blocks, search the entire basic block
list for one more jump block which is identical to the
others, except that it doesn't end in a jmp, but rather
falls through to the same target that the group jumps to.
That block is then included in the group, and also becomes the
default leader since it is pushed to the front.
(basic-blocks late-peephole): Remove the peephole pattern
which tried to attack the same problem. The new approach is
much more effective: when compiling stdlib, 77 instances occur in which
such a block is identified and added! The peephole pattern only
matched six times.
Diffstat (limited to 'parser.c')
0 files changed, 0 insertions, 0 deletions