GPRPair issue on LLVMLinux side

Tim Northover t.p.northover at gmail.com
Sun Aug 18 11:24:40 PDT 2013


> I think I've spotted the problem in the CodeGen for
> set_normalized_timespec: the first "adds" is using an undefined
> register r6 (attaching .ll file for the curious, though I'm intending
> to get this fixed).

It turned out to be a latent bug where we were untying operands while
converting them to GPRPair. The function I picked on
("set_normalized_timespec") contained asm("" : "+rm"(var)) which broke
the live-range of "var": it was "r2,r3" going in but "r6,r7" coming
out. Not good if there's no assembly to actually do that move (or if
the assembly that *is* present expects a single set of registers).

Should be fixed in r188643.

Tim.



More information about the llvm-commits mailing list