On Fri, Mar 27, 2020 at 7:27 PM Jakub Jelinek <ja...@redhat.com> wrote: > > On Sat, Mar 28, 2020 at 02:06:56AM +0800, Kito Cheng wrote: > > PR target/90811 > > * ipa-increase-alignment.cc (increase_alignment_local_var): New. > > (increase_alignment_global_var): New. > > (pass_ipa_increase_alignment::gate): Remove. > > I'm afraid this is too early, pass_ipa_increase_alignment is part of > all_small_ipa_passes list, those are run before the LTO streaming. > See cgraphunit.c (ipa_passes). > For OpenMP/OpenACC offloading, this has to run after the streaming, > which means either a pass in the all_regular_ipa_passes list, or much better > (I don't see any advantage of this being an IPA pass) some new pass that is > run very early in the all_passes list.
It's an IPA pass because we IPA propagate alignment. I fear that offload targets have to agree on local variable alignment if we want to go this way (update DECL_ALIGN). But I wonder if we can instead fix the memcpy inlining issue by making the predicates involved honor LOCAL_ALIGNMENT instead of relying on DECL_ALIGN? > > At which point I don't really see the benefit of moving this into a new file > either. > > Jakub >