This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Propagate BB predicates in ipa-inline-analysis
> tree-ssa-forwprop.c I presume? That one misses calling fold_stmt when
> it propagates things.
Yep.
>
> > <bb 5>:
> > ?iftmp.1_9 = 0;
> >
> > <bb 6>:
> > ?# iftmp.1_2 = PHI <1(4), 0(5)>
> > ?D.2739_10 = __builtin_constant_p (iftmp.1_2);
>
> But I wonder how it manages to do something to the above ... (are you
> sure it's forwprop?)
It is fwprop, but I cut&pasted wrong function (it is the offline copy instead of inline).
we transfrom:
g (unsigned int size)
{
int iftmp.1;
int D.2765;
unsigned int D.2764;
unsigned int D.2763;
static unsigned int count[2] = {0, 0};
int r;
static unsigned int count[2] = {0, 0};
unsigned int D.2729;
<bb 2>:
D.2729_2 = size_1(D) / 4096;
if (D.2729_2 > 1073741823)
goto <bb 4>;
else
goto <bb 3>;
<bb 3>:
<bb 4>:
# iftmp.1_7 = PHI <1(2), 0(3)>
D.2765_8 = __builtin_constant_p (iftmp.1_7);
into:
g (unsigned int size)
{
int D.2765;
unsigned int D.2764;
unsigned int D.2763;
static unsigned int count[2] = {0, 0};
int r;
static unsigned int count[2] = {0, 0};
<bb 2>:
D.2765_8 = __builtin_constant_p (0);
I guess forwprop should fold then... The extra call and control flow survives
all the way down to ccp2 (that is after IPA) that eventually folds it away.
Honza