On Thu, Feb 25, 2016 at 11:04:21AM +0000, Kyrill Tkachov wrote: > Hi all, > > Seems like aarch64 is suffering from something similar to PR 69245 as well. > If a target pragma sets the target state to the same as the > target_option_default_node the node is just a pointer to > target_option_default_node rather than a distinct identical node. So we must > still restore the target globals even when setting to > target_option_default_node in order to force the midend to recompute the > availability of various optabs. > > If we don't do it, we can get in a problem like in the testcase where the > isa_flags are all set correctly, but the optab HAVE_* predicates have not > been recomputed. > > There is also a related issue present when popping/resetting target pragmas > for which I'll send out a patch separately. > > Bootstrapped and tested on aarch64. > > Ok for trunk?
OK. Thanks, James > Thanks, > Kyrill > > > 2016-02-25 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > PR target/69245 > * config/aarch64/aarch64.c (aarch64_set_current_function): Save/restore > target globals when switching to target_option_default_node. > > 2016-02-25 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > PR target/69245 > * gcc.target/aarch64/pr69245_1.c: New test.