This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Possible bug in cse.c affecting pre/post-modify mem access


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]