This is the mail archive of the gcc-bugs@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]

[Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120


------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de  2004-04-10 15:48 -------
Subject: Re:  [tree-ssa] Many C++ compile-time regression in
 3.5-tree-ssa 040120

> However, it is a bit surprising that this would cause a significant
> decline in compile time.  Would you have a pre-patched cc1plus binary to
> compare dump files?

Cutting off the numbers from the vars and killing <Dxxx> reveals:

@@ -256,6 +256,7 @@ virtual Smarts::Runnable::~Runnable() (t
  {
    bool T.;
    int T.;
+  int (*__vtbl_ptr_type) () * T.;

  <bb 0>:
    this->_vptr.Runnable = &_ZTVN6Smarts8RunnableE[2];

(and similar in all destructors)

  int fillLocStorage(int, Loc<Dim>&, constT1&) [with int Dim = 3, T1 = 
Loc<3>] (currIndex, loc, a)
  {
+  int currIndex.;
    int ;
    int d;
    int T.;
@@ -1581,6 +1503,7 @@ int fillLocStorage(int, Loc<Dim>&, const
    struct Domain<1,DomainTraits<Loc<1> > > * T.;
    struct Loc<1> * T.;
    struct Loc<1> & T.;
+  int currIndex.;
    struct Domain<3,DomainTraits<Loc<3> > > * loc.;
    int retval.;
    int retval.;
@@ -1595,13 +1518,17 @@ int fillLocStorage(int, Loc<Dim>&, const
    i = 0;

  <L0>:;
+  currIndex. = currIndex + 1;
    *(int &)(struct Domain<1,DomainTraits<Loc<1> > > *)(struct Loc<1> 
*)(struct Loc<1> &)((struct Loc<1> *)((long unsigned int)currIndex * 4) 
+ (struct Loc<1> *)(struct UninitializedVector<Loc<1>,3,int> *)(struct 
Domain<3,DomainTraits<Loc<3> > > *)loc) = ((struct 
DomainBase<DomainTraits<Loc<1> > > *)(struct 
Domain<1,DomainTraits<Loc<1> > > *)(struct Loc<1> &)((struct Loc<1> 
*)((long unsigned int)i * 4) + (struct Loc<1> *)(struct 
UninitializedVector<Loc<1>,3,int> *)(struct Domain<3,DomainTraits<Loc<3> 
 > > *)a))->domain_m;
-  currIndex = currIndex + 1;
    i = i + 1;
-  if (i <= 2) goto <L0>; else goto <L10>;
+  if (i <= 2) goto <L13>; else goto <L10>;
+
+<L13>:;
+  currIndex = currIndex.;
+  goto <bb 1> (<L0>);

  <L10>:;
-  return currIndex;
+  return currIndex.;

  }

looks like DOM is now missing some optimization

then, lots of re-ordering of functions in the diff, and noise... (label 
number changes, bb number changes).  The dump files are huge (both 
around 50MB uncompressed), if you want to download them, I can put them 
to an accessible location.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13776


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