[llvm-commits] [PATCH] Tail recursion elimination and memory loads.

Duncan Sands baldrick at free.fr
Wed Jun 17 00:55:13 PDT 2009


Hi Frits,

>  2) The load is non-volatile, the call does not write to memory, and the 
> pointer isSafeToLoadUnconditionally() at that point in the code. In this 
> case, the load has no side-effects (and won't trap) and the memory it 
> loads from won't contain different data after the call, making it safe 
> to raise the load above the call.

shouldn't isSafeToLoadUnconditionally() check that the load is not
volatile?  If you are loading from i/o memory, then the fact of
executing the load could cause your rocket to launch - in any case
it is not in general safe to LoadUnconditionally something volatile.

Ciao,

Duncan.



More information about the llvm-commits mailing list