+++ title = "Before or after scheduling" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["1c5c"] forwardlinks = ["1c5e"] zettelid = "1c5d" +++ Register allocation is a tricky optimisation to get right, because there are a lot of trade-offs on where to place the optimisation. Especially in high-level synthesis, it's tricky to know where to place these, as one can target really any architecture. In high-level synthesis particularly, it seems like it would be better to perform the optimisation after scheduling, as one would want as much freedom for scheduling as possible. This is to get the largest possible instruction level parallelism.