<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 28, 2014 at 2:31 AM, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 28 March 2014 02:06, Rafael EspĂ­ndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>

> Correct. The proposed solution would work for all non allocatable<br>
> registers. We should probably still err if someone tries to use an<br>
> allocatable one.<br>
<br>
</div>AFAIK, GCC reserves the allocatable registers. If we're going to do<br>
this we'd have to be as close as possible to the current behaviour to<br>
avoid surprises.</blockquote></div><br>This has been the long standing historical objection to the feature. It is a *really* invasive change to the register allocator to plumb this kind of register reservation through it. Worse, the semantics for it being inherently translation-unit based become deeply confusing in LLVM due to the potential for (partial) LTO.</div>
</div>