[llvm-commits] [llvm][PATCH][Review Requested]

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon Apr 30 17:13:57 PDT 2012


On Apr 30, 2012, at 3:09 PM, "Gurd, Preston" <preston.gurd at intel.com> wrote:

> The problem which we are trying to solve is that when we enable register scavenging for X86, the register scavenger sees X87 stack registers (which are unallocatable)  and then triggers an assertion failure saying “Using an undefined physical register”. We want to ignore unallocatable registers in the registers as per the patch that you committed last July (r136541). That patch was reverted because it apparently negatively affected ARM. We want to ignore unallocatable registers for X86 so that we can use the register scavenger which in turn we need for post RA scheduling for Intel Atom.

Actually, I think this is exposing a real problem. The ST registers can't be treated as normal unallocatable registers because they are really stack positions. This means that the PostRA scheduler can't properly reason about their dependencies either.

I would prefer if the ST registers were reserved. Then the scheduler would know to leave them alone.

The ST registers are also used before register allocation to pass fixed stack parameters to and from inline assembly. Previously, reserving the ST registers broke some tests in inline-asm-fpstack.ll because of missing dead flags, but that seems to have been fixed.

/jakob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120430/d122866e/attachment.html>


More information about the llvm-commits mailing list