[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrFPStack.td X86InstrInfo.cpp X86InstrInfo.h X86InstrInfo.td X86InstrMMX.td X86InstrSSE.td

Chris Lattner clattner at apple.com
Tue Jun 19 15:12:03 PDT 2007

>> Okay, the tricky thing here is instructions that have "conditional
>> side effects".  For example, all instructions marked isload/isstore/
>> iscall etc should be considered to have side effects (as would
>> anything with implicit definitions), but loads from constant pools
>> and other special cases should not be considered to have side  
>> effects.
> And on some specialized architectures there are other types of  
> loads/stores that are not side affecting as well. It would be good  
> to have this be open to customization.

The issues with loads and stores isn't one of side effects, it's one  
of aliasing.  You can't sink a load past a potentially modifying  
store.  The remat pass could track this and do smart things, but in  
the short term it would be better to just stop all stores and loads  
from moving... unless they are loads from the constant pool etc.


More information about the llvm-commits mailing list