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: [PATCH 1/N] Clean-up usage of ipa_fn_summary and ipa_call_summary summaries.


> Hello.
> 
> ICEs on:
> 
> $ cat ice.ii
> #pragma GCC optimize 0
> int main() {}
> 
> $ ./xgcc -B. -O2 ice.ii
> during IPA pass: cp
> ice.ii:2:13: internal compiler error: Segmentation fault
>  int main() {}
>              ^
> 0xdbb6bf crash_signal
> 	/home/marxin/Programming/gcc/gcc/toplev.c:324
> 0x7ffff6d8ba6f ???
> 	/usr/src/debug/glibc-2.27-5.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
> 0x15edd82 ipcp_propagate_stage
> 	/home/marxin/Programming/gcc/gcc/ipa-cp.c:3292
> 0x15f049a ipcp_driver
> 	/home/marxin/Programming/gcc/gcc/ipa-cp.c:5081
> 0x15f049a execute
> 	/home/marxin/Programming/gcc/gcc/ipa-cp.c:5172

I see, it would be cleaner to simply skip !optimize functions in this loop
(and not try to allocate lattices for them), but that is definitly something
for followup.

> >> @@ -1199,7 +1199,8 @@ sem_function::merge (sem_item *alias_item)
> >>  		     "can not create wrapper of stdarg function.\n");
> >>  	}
> >>        else if (ipa_fn_summaries
> >> -	       && ipa_fn_summaries->get_create (alias)->self_size <= 2)
> >> +	       && ipa_fn_summaries->get (alias) != NULL
> >> +	       && ipa_fn_summaries->get (alias)->self_size <= 2)
> > 
> > Alias is the target we merge to. In what sictuation it can be unanalyzed?
> 
> Can't that also ICE for similar reason as IPA CP?

Hmm, I do not think we should try to merge -O0 functions :)
But again, if you have testcase that triggers this path, we could
handle it later.

Thanks! Patch is OK with keeping those two hunks after the
remaining few changes.
Honza


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