On 10/20/2015 10:39 AM, Andrew Haley wrote:
On 10/20/2015 05:22 PM, Jeff Law wrote:
On 10/20/2015 10:15 AM, Andrew Haley wrote:
But in that case, what do we guarantee.

We certainly don't guarantee that those objects will be in their
requested register at any point other than at the asm statements.

OK, but this usage did work in the past: that it now doesn't is a
regression.  GCC was quite useful (unique, really) in that it provided
a way to write a decent bytecode interpreter in a HLL.  The world has
lost something significant if this no longer works.

It still works, but again, it's not a guarantee, never has been.

I hear you, but what always mattered most was what happened in
practice, and in practice it worked rather nicely.  The question,
then, isn't what we can guarantee but what usually works.
I would disagree. What's documented is essentially what we are committing to.

Given the way the optimizers and register allocation work, I don't think we can make guarantees around this use of the feature. It happens to still work and may work forever, but I'm not going to set it in stone.



And as we know, the behaviour of GCC isn't driven by the whim of the
maintainers but by the needs of our users, especially kernel
programmers!  Authors of interpreters don't have quite so much
influence.
Actually interpreters have had a fair amount of influence through the years. Sadly, it's usually been focused on avoiding pathological behaviour because of the highly connected CFGs we get in interpreter engines ;(

jeff

Reply via email to