Re: [PATCH] Fix 70199

2016-03-19 Thread Richard Henderson
On 03/16/2016 02:40 AM, Richard Biener wrote: I like patch 2 more - btw, you need to add has_forced_label_in_static streaming to lto-streamer-{in,out}.c, just look for has_nonlocal_label streaming. Also has_label_address_in_static_1 is now unused and should be removed. I'd already found the la

Re: [PATCH] Fix 70199

2016-03-16 Thread Richard Biener
On Tue, Mar 15, 2016 at 8:42 PM, Richard Henderson wrote: > On 03/15/2016 07:13 AM, Richard Biener wrote: >> >> On Tue, Mar 15, 2016 at 4:44 AM, Richard Henderson wrote: >>> >>> The problem here is that >>> >>>void* labels[] = { >>> &&l0, &&l1, &&l2 >>>}; >>> >>> gets gimplified to >

Re: [PATCH] Fix 70199

2016-03-15 Thread Richard Henderson
On 03/15/2016 07:13 AM, Richard Biener wrote: On Tue, Mar 15, 2016 at 4:44 AM, Richard Henderson wrote: The problem here is that void* labels[] = { &&l0, &&l1, &&l2 }; gets gimplified to labels = *.LC0; but .LC0 is not in the set of local decls, so that when copy_forbidden is

Re: [PATCH] Fix 70199

2016-03-15 Thread Richard Biener
On Tue, Mar 15, 2016 at 4:44 AM, Richard Henderson wrote: > The problem here is that > > void* labels[] = { > &&l0, &&l1, &&l2 > }; > > gets gimplified to > > labels = *.LC0; > > but .LC0 is not in the set of local decls, so that when copy_forbidden is > called during sra versioning we f

[PATCH] Fix 70199

2016-03-14 Thread Richard Henderson
The problem here is that void* labels[] = { &&l0, &&l1, &&l2 }; gets gimplified to labels = *.LC0; but .LC0 is not in the set of local decls, so that when copy_forbidden is called during sra versioning we fail to forbid the copy. We could set a different flag, but I think it's eas