[Bug optimization/12340] [3.3 regression] loop unroller + gcse produces wrong code

rguenth at tat dot physik dot uni-tuebingen dot de gcc-bugzilla@gcc.gnu.org
Mon Sep 22 08:17:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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



------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de  2003-09-22 08:01 -------
Subject: Re:  [3.3 regression] loop unroller + gcse
 produces wrong code

On 22 Sep 2003, ebotcazou at gcc dot gnu dot org wrote:

> ------- Additional Comments From ebotcazou at gcc dot gnu dot org  2003-09-22 06:03 -------
> Any chance that you could shrink down the 50000-line testcase? Trying to do it
> without knowing the code is a bit painful.

The testcase is

#include "Domain/Interval.h"
#include "Engine/BrickEngine.h"

#include "../../Engine/BrickBase.cpp"
#include "../../Utilities/Unique.cmpl.cpp"

namespace Pooma {
   int myContext_g;
}

typedef Engine<1,double,Brick>         Array_t;

int main(int argc, char *argv[])
{
    Interval<1> I(10);
    Array_t A(I);
    for (int i = 0; i < 10; i++)
      A(Loc<1>(i)) = 2.0 + i - i*i;
    return 0;
}

unfortunately, this pulls in nearly all of the POOMA library (although
most of it is unused, of course). Sadly delta is not very good/fast at
reducing C++ testcases. Maybe the tree-ssa pretty-printer can output
only the used parts? Or maybe you can assist me in reducing such C++
testcases (aka stripping unused parts of the code).

After all, the assembly file of the testcase is only 11k big and it seems
to be a problem with the destructor handling? But I can't see anything
obvious either.

Richard.

--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/



More information about the Gcc-bugs mailing list