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