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]

[PATCH] Fix LTO option streaming


It looks like when transitioning to using target and optimization
option nodes for compile-time to link-time option streaming you
didn't adjust lto-opts.c nor lto-wrapper.c.  The following fixes
the target option side (for SWITCHABLE_TARGET).  Do not record
any target options in the lto_opts section.

Honza - I suppose we don't have any testcase that this works, I'll
try to come up with sth.  This also looks like a correctness issue
to me.

We can do similar changes for optimize options, now, for all targets, no?

Thanks,
Richard.

2015-04-23  Richard Biener  <rguenther@suse.de>

	* lto-opts.c (lto_write_options): Do not record target options
	if we are targeting a SWITCHABLE_TARGET target.  We use target
	options on functions to transfer target flags from compile to
	link time.

Index: gcc/lto-opts.c
===================================================================
*** gcc/lto-opts.c	(revision 222360)
--- gcc/lto-opts.c	(working copy)
*************** lto_write_options (void)
*** 219,224 ****
--- 219,230 ----
  	  && lto_stream_offload_p)
         continue;
  
+       /* Do not store target-specific options if we target a
+          SWITCHABLE_TARGET target.  */
+       if ((cl_options[option->opt_index].flags & CL_TARGET)
+ 	  && SWITCHABLE_TARGET)
+ 	continue;
+ 
        /* Drop options created from the gcc driver that will be rejected
  	 when passed on to the driver again.  */
        if (cl_options[option->opt_index].cl_reject_driver)


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