------- Comment #3 from jakub at gcc dot gnu dot org 2010-01-18 10:57 ------- The problem is that dataflow_set_preserve_mem_locs and/or dataflow_set_remove_mem_locs removes all MEMs (with the exception of those referring to decl with 0 MEM_OFFSET in the first function) upon encountering a CALL. For parameters (ARG_POINTER_REGNUM based, or even HARD_FRAME_POINTER_REGNUM based ones I believe) we don't need to remove them, as long as the decl isn't addressable and thus the call shouldn't have modified them.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42782