[LLVMdev] can i avoid saving CSRs for functions with noreturn

Tim Northover t.p.northover at gmail.com
Thu Aug 1 00:19:00 PDT 2013


Hi,

> can anyone tell me this patch is generic ?

It looks like which registers would have been saved is calculated
elsewhere, and it looks suspiciously like the targets use that
information for other purposes (debug/exception info, possibly
calculating object offsets from sp, perhaps even storing registers for
other purposes).

If it was me, I'd implement this feature by preventing the
callee-saved registers from getting on that list in the first place.
Though even that's a risky change and would need some careful testing
across many targets.

The whole area of prologue and epilogue emission is one of the most
complicated and fragile parts of compiler backends in my experience.

Cheers.

Tim.



More information about the llvm-dev mailing list