This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: An unusual Performance approach using Synthetic registers



My goal is that the generated code with Synthetic registers will be
significantly better (looking just at the instruction count). If the fields
have individual values, in your example, then Reload imposes an overhead. It
is a two step process: move the spilled data back into a register, then use
it. With a Synthetic, you get to just use it.

If the new allocator determines the data in question is cheaper to recalculate than it would be to reload it from memory, it'll do so (though it might be a bit limited in what it *can* recalculate right now, this is fixable. I don't have numbers on how often it would have wanted to remat but couldn't due to these problems). It's known as "rematerialization".
Thus, in the example of vtable pointers, it'll simply recalculate the value into the new register, rather than reload it from memory.

Andy






Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]