On Fri, Sep 2, 2011 at 7:42 PM, Ulrich Weigand <uweig...@de.ibm.com> wrote:
> Jan Hubicka wrote:
>
>>       (edge_execution_predicate): Rewrite as...
>>       (set_cond_stmt_execution_predicate): ... this function; handle
>>       __builtin_constant_p.
>
> This causes ICEs when building recent Linux kernels with the
> CONFIG_TRACE_BRANCH_PROFLING option.  This reduced test case:
>
> static inline __attribute__((always_inline)) int f (unsigned int n, unsigned 
> int size)
> {
>  return (__builtin_constant_p (size != 0 && n > ~0 / size)
>         ? !!(size != 0 && n > ~0 / size)
>         : ({ static unsigned int count[2] = { 0, 0 };
>              int r = !!(size != 0 && n > ~0 / size);
>              count[r]++;
>              r; }));
> }
>
> int g (unsigned int size)
> {
>  return f (size / 4096, 4);
> }
>
> built with -O2 (on i386) on current mainline results in:
>
> /home/uweigand/test.i:15:1: internal compiler error: tree check: expected 
> ssa_name, have integer_cst in set_cond_stmt_execution_predicate, at 
> ipa-inline-analysis.c:1190

Can you open a bugreport?

Thanks,
Richard.

> Bye,
> Ulrich
>
> --
>  Dr. Ulrich Weigand
>  GNU Toolchain for Linux on System z and Cell BE
>  ulrich.weig...@de.ibm.com
>

Reply via email to