This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: -fstrict-aliasing fixes 1/5: propagate -fno-strict-aliasing in the inliner


> >	* ipa-inline-transform.c (inline_call): Drop -fstrict-aliasing when
> >	inlining -fno-strict-aliasing into -fstrict-aliasing body.
> >	* gcc.dg/lto/alias-1_0.c: New testcase.
> >	* gcc.dg/lto/alias-1_1.c: New testcase.
> >Index: ipa-inline-transform.c
> >===================================================================
> >--- ipa-inline-transform.c	(revision 231081)
> >+++ ipa-inline-transform.c	(working copy)
> >@@ -322,6 +322,21 @@ inline_call (struct cgraph_edge *e, bool
> >   if (DECL_FUNCTION_PERSONALITY (callee->decl))
> >     DECL_FUNCTION_PERSONALITY (to->decl)
> >       = DECL_FUNCTION_PERSONALITY (callee->decl);
> >+  if (!opt_for_fn (callee->decl, flag_strict_aliasing)
> >+      && opt_for_fn (to->decl, flag_strict_aliasing))
> 
> Just curious why you don't handle the other way round?

After inlining, opt_for_fn of CALLEE will be ignored and will
become opt_for_fn of TO. Turning flag_strict_alising code to
!flag_strict_aliasing is safe, but not the other way around.
> 
> >+    {
> >+      struct gcc_options opts = global_options;
> >+
> >+      cl_optimization_restore (&opts,
> >+	 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl)));
> >+      opts.x_flag_strict_aliasing = false;
> >+      if (dump_file)
> >+	fprintf (dump_file, "Dropping flag_strict_aliasing on %s:%i\n",
> >+		 to->name (), to->order);
> 
> ISTR to have seen %s/%i for printing name and order in IPA, no?

Hmm, right, will update it.
> >+void link_error (void);
> 
> Unused and unneeded forward decl?

Yep, I originally wanted to check that we optimize out the type punned code (we can)
but we don't seem to be able to do so.   It is just a testcase and extra
declaration is harmless I guess.

Thanks!
Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]