summaryrefslogtreecommitdiff
path: root/compiler/Language
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2021-09-23 17:30:05 +0100
committerMatthew Pickering <matthewtpickering@gmail.com>2021-09-28 12:31:30 +0000
commit0019cd9cf6e0834abb5900009e18c9353d127684 (patch)
treebc434b83b522ecd18bb4bef3d66f352aa20f28c2 /compiler/Language
parent26f24aeca7784f9f9a2a49bce42eaeb60b94d39f (diff)
downloadhaskell-wip/linear-reg-alloc.tar.gz
code gen: Improve efficiency of findPrefRealRegwip/linear-reg-alloc
Old strategy: For each variable linearly scan through all the blocks and check to see if the variable is any of the block register mappings. This is very slow when you have a lot of blocks. New strategy: Maintain a map from virtual registers to the first real register the virtual register was assigned to. Consult this map in findPrefRealReg. The map is updated when the register mapping is updated and is hidden behind the BlockAssigment abstraction. On the mmark package this reduces compilation time from about 44s to 32s. Ticket: #19471
Diffstat (limited to 'compiler/Language')
0 files changed, 0 insertions, 0 deletions