On 05/12/2018 01:35 PM, Bernd Schmidt wrote:
> On 05/12/2018 07:01 PM, Jeff Law wrote:
> 
>> No.  We're not supposed to have any auto-inc insns prior to the auto-inc
>> pass.  A stack push/pop early in the compiler would have to be
>> represented by a PARALLEL.
>>
>> It's been this way forever.  It's documented in the internals manual
>> somewhere.
> 
> Sorry, but you're misremembering this. Stack pushes/pops were always
> represented with autoinc, these being the only exception to the rule you
> remember. You can easily verify this by looking at a .expand dump from a
> 32-bit i386 compiler - I just did so with 2.95 and 6.4. It's all pre_dec
> for argument passing.
That does sound vaguely familiar.  Did we put autoinc notes on the stack
pushes?


That makes me wonder if there is a latent bug though.  Consider pushing
args to a pure function.  Could we then try to CSE the memory reference
and get it wrong because we haven't accounted for the autoinc?

Jeff

Reply via email to