Am 20.05.2017 um 21:34 schrieb Jonas Maebe: > Also in summary, very little was learned from this. We have known for a long > time that FPC needs SSA > for better code generation for loops (and Florian has been working on it for > a long time too).
Actually, this is not completely true :) What FPC needs to generate better code in this case (on SYS V ABI targets), is life splitting around call nodes. This needs no SSA/SSA might actually not help. I have a patch for it, but not finished, as another patch is needed for this to make it work well: spill coalescing (nodes/registers which are spilled, are spilled to the same memory location if they are not interfering but connected by a move). I have also a half backed patch for this, but never finished it nor committed it to the official trunk. Both patches combined result for the example in much better code regarding register usage as variables can go to xmm registers which are stored/restored around call nodes. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal