summaryrefslogtreecommitdiffstats
path: root/parser.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-11-26 20:11:58 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-11-26 20:11:58 -0800
commitbeac7fcc9cf4c7533d658e7c4839b715d6c714cd (patch)
tree0562347684bee87860382450767aa0b9a1eec3f7 /parser.c
parent6afada2bbf58ed9ba6a8701bb7ec56633cb2633e (diff)
downloadtxr-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