Hi! On Thu, Jul 22, 2021 at 03:04:32PM +0200, Richard Biener wrote: > On Thu, Jul 22, 2021 at 9:02 AM Bin.Cheng via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > > > Gentle ping. Any suggestions would be appreciated.
Bin: I never received your messages. And my replies to you @alibaba are refused by the mail system there as well. I'll dig things up from the ML archives. > So just to say something - does the existing code mean that any use of > the alias info on prologue/epilogue insns is wrong? We have > > /* The prologue/epilogue insns are not threaded onto the > insn chain until after reload has completed. Thus, > there is no sense wasting time checking if INSN is in > the prologue/epilogue until after reload has completed. */ > bool could_be_prologue_epilogue = ((targetm.have_prologue () > || targetm.have_epilogue ()) > && reload_completed); > > so when !could_be_prologue_epilogue then passes shouldn't run into > them if the comment is correct. But else even epilogue stmts could appear > anywhere (like scheduled around)? So why's skipping those OK? > > Are passes supposed to check whether they are dealing with pro/epilogue > insns and not touch them? CCing people that might know. *logue isns should not exist until pass pro_and_epilogue. This pass is later than reload. All such stack accesses use gen_frame_mem(), which does set_mem_alias_set (mem, get_frame_alias_set ()); so what is going wrong here? Segher