>> 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. -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits