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: 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


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