Thursday, August 17, 2006

More about time.

Today I changed a little bit the structure of the compiler, in order to improve the velocity of the register allocation pass. Also, I run some more tests, mostly concerning floating point numbers. The algorithm is now much faster than one week ago, but it is still slower than linear scan. A comparison between the time of both algorithms is given here, for this program. However, linear scan is producing better code. This is due to two main reasons: 1) the excessive number of instructions inserted by the phi deconstruction algorithm, 2) the spilling strategy. I will try to optimize the spilling strategy tomorrow. About the phi deconstruction algorithm, the extra instructions may be a problem, because each swap demands three instructions, instead of two that would be used in simple move insertion. I will have to look more into this problem. By the way, the most recent version of my code can be obtained here.

0 Comments:

Post a Comment

<< Home