[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