Is it possible that gcc reorders a series of read/write operations?

David Daney ddaney@avtrex.com
Thu Sep 4 16:06:00 GMT 2008


Pan ruochen wrote:
>> GCC shouldn't reorder the operations because you have them declared as
>> 'volatile', however I have a MIPS CPU where the hardware writeback buffer
>> seems to do reordering...
>>
>> David Daney
>>
> 
> Can volatile do this? I thought volatile just forced GCC to read the
> memory location each time rather than cahed the value in a register.

It does.  The problem I described is a hardware problem and has nothing 
to do with the compiler.

> And I am interested in the details how your MIPS CPU hardware
> reordered instructions.
> 

The instructions are executed in order.  The problem is that the write 
operations in IO space are sometimes reordered.  On this board, flushing 
the write-back buffer after IO writes is required.

David Daney



More information about the Gcc-help mailing list