public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/2692: excessive compile time with optimization
@ 2002-04-12 16:43 rth
0 siblings, 0 replies; 6+ messages in thread
From: rth @ 2002-04-12 16:43 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, rth, snyder
Synopsis: excessive compile time with optimization
State-Changed-From-To: open->analyzed
State-Changed-By: rth
State-Changed-When: Fri Apr 12 16:43:50 2002
State-Changed-Why:
http://gcc.gnu.org/ml/gcc-patches/2002-04/msg00626.html
Doesn't actually work, but highlights the problem.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=2692
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: optimization/2692: excessive compile time with optimization
@ 2002-04-02 1:56 Richard Henderson
0 siblings, 0 replies; 6+ messages in thread
From: Richard Henderson @ 2002-04-02 1:56 UTC (permalink / raw)
To: rth; +Cc: gcc-prs
The following reply was made to PR optimization/2692; it has been noted by GNATS.
From: Richard Henderson <rth@redhat.com>
To: Scott Snyder <snyder@fnal.gov>
Cc: rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: optimization/2692: excessive compile time with optimization
Date: Tue, 2 Apr 2002 01:49:27 -0800
FWIW, 3.1 20020326 "only" took 12 minutes to compile this
test case, and "only" used 45MB. CPU users were
expand : 438.54 (63%) usr 0.11 ( 4%) sys 438.62 (62%) wall
reload CSE regs : 93.51 (14%) usr 0.01 ( 0%) sys 93.50 (13%) wall
global alloc : 77.31 (11%) usr 0.05 ( 2%) sys 77.38 (11%) wall
regmove : 46.59 ( 7%) usr 0.01 ( 0%) sys 46.56 ( 7%) wall
r~
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: optimization/2692: excessive compile time with optimization
@ 2002-04-02 1:34 rth
0 siblings, 0 replies; 6+ messages in thread
From: rth @ 2002-04-02 1:34 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, rth, snyder
Synopsis: excessive compile time with optimization
Responsible-Changed-From-To: unassigned->rth
Responsible-Changed-By: rth
Responsible-Changed-When: Tue Apr 2 01:34:53 2002
Responsible-Changed-Why:
.
State-Changed-From-To: feedback->open
State-Changed-By: rth
State-Changed-When: Tue Apr 2 01:34:53 2002
State-Changed-Why:
Got test case.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=2692
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: optimization/2692: excessive compile time with optimization
@ 2002-04-02 1:16 Scott Snyder
0 siblings, 0 replies; 6+ messages in thread
From: Scott Snyder @ 2002-04-02 1:16 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR optimization/2692; it has been noted by GNATS.
From: Scott Snyder <snyder@fnal.gov>
To: rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
nobody@gcc.gnu.org, snyder@fnal.gov, gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: optimization/2692: excessive compile time with optimization
Date: 02 Apr 2002 03:11:25 -0600
From: scott snyder <snyder@fnal.gov>
Subject: optimization/2692: excessive compile time with optimization
To: gcc-bugs@gcc.gnu.org
Date: Fri, 18 May 2001 15:34:07 -0500
hi -
I just noticed that somehow the code sample for this report didn't make
it into gnats. I'm not sure what happened --- it's in my local copy
of the report that i saved before sending it.
Anyway, here's the complete version, including the code.
sss
SEND-PR: -*- send-pr -*-
SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
SEND-PR: will all comments (text enclosed in `<' and `>').
SEND-PR:
SEND-PR: Please consult the GCC manual if you are not sure how to
SEND-PR: fill out a problem report.
SEND-PR: Note that the Synopsis field is mandatory. The Subject (for
SEND-PR: the mail) will be made the same as Synopsis unless explicitly
SEND-PR: changed.
SEND-PR:
SEND-PR: Choose from the following categories:
SEND-PR:
SEND-PR: c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end objc optimization other preprocessor target web
SEND-PR:
SEND-PR:
To: gcc-gnats@gcc.gnu.org
Subject: excessive compile time with optimization
From: snyder@fnal.gov
Reply-To: snyder@fnal.gov
Cc:
X-send-pr-version: 3.113
X-GNATS-Notify:
>Submitter-Id: net
>Originator: scott snyder
>Organization: <organization of PR author (multiple lines)>
>Confidential: no
SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public.
>Synopsis: excessive compile time with optimization
>Severity: serious
SEND-PR: critical GCC is completely not operational; no work-around known.
SEND-PR: serious GCC is not working properly; a work-around is possible.
SEND-PR: non-critical Report indicates minor problem.
>Priority: low
SEND-PR: high A solution is necessary as soon as possible.
SEND-PR: medium The problem should be solved in the next release.
SEND-PR: low The problem should be solve in a future release.
>Category: optimization
>Class: sw-bug
SEND-PR: doc-bug The doumentation is incorrect.
SEND-PR: accepts-illegal GCC fails to reject erroneous code.
SEND-PR: rejects-legal GCC gives an error message for correct code.
SEND-PR: wrong-code The machine code generated by gcc is incorrect.
SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE)
SEND-PR: for correct code
SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error
SEND-PR: pessimizes-code GCC misses an important optimization opportunity
SEND-PR: sw-bug Software bug of some other class than above
SEND-PR: change-request A feature in GCC is missing.
SEND-PR: support I need help with gcc.
>Release: 3.0 20010429 (prerelease)
>Environment:
System: Linux karma 2.2.16-22 #1 Tue Aug 22 16:49:06 EDT 2000 i686 unknown
Architecture: i686
<machine, os, target, libraries (multiple lines)>
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../egcs/configure --prefix=/usr/local/egcs --enable-threads=posix --enable-long-long
>Description:
If i try to compile the source below with -O2, gcc runs for over 45 minutes
and grows to over 300 MB. On my machine, it exhausts the available
swap space and dies before completing.
Without optimization, it completes in a couple minutes.
gcc 2.95.2 dies immediately with an ICE on this source, regardless
of whether or not optimization is on, so i guess this isn't a regression.
>How-To-Repeat:
namespace std
{
class dcomplex
{
public:
typedef double value_type;
dcomplex(double =0.0, double =0.0);
double real() const;
double imag() const;
dcomplex& operator=(double);
dcomplex& operator=(const dcomplex&);
dcomplex& operator+=(const dcomplex&);
dcomplex& operator-=(const dcomplex&);
dcomplex& operator*=(const dcomplex&);
private:
typedef __complex__ double _ComplexT;
_ComplexT _M_value;
dcomplex(_ComplexT __z) : _M_value(__z) { }
};
inline dcomplex
operator*(const dcomplex& __x, const dcomplex& __y)
{ return dcomplex (__x) *= __y; }
inline dcomplex
operator-(const dcomplex& __x, const dcomplex& __y)
{ return dcomplex (__x) -= __y; }
inline dcomplex
operator+(const dcomplex& __x, const dcomplex& __y)
{ return dcomplex (__x) += __y; }
inline double
dcomplex::real() const
{ return __real__ _M_value; }
inline double
dcomplex::imag() const
{ return __imag__ _M_value; }
inline
dcomplex::dcomplex(double __r, double __i)
{
__real__ _M_value = __r;
__imag__ _M_value = __i;
}
inline dcomplex&
dcomplex::operator=(double __d)
{
__real__ _M_value = __d;
__imag__ _M_value = 0.0;
return *this;
}
inline dcomplex&
dcomplex::operator=(const dcomplex& __z)
{
__real__ _M_value = __z.real();
__imag__ _M_value = __z.imag();
return *this;
}
inline dcomplex&
dcomplex::operator+=(const dcomplex& __z)
{
__real__ _M_value += __z.real();
__imag__ _M_value += __z.imag();
return *this;
}
inline dcomplex&
dcomplex::operator-=(const dcomplex& __z)
{
__real__ _M_value -= __z.real();
__imag__ _M_value -= __z.imag();
return *this;
}
inline dcomplex&
dcomplex::operator*=(const dcomplex& __z)
{
_ComplexT __t;
__real__ __t = __z.real();
__imag__ __t = __z.imag();
_M_value *= __t;
return *this;
}
} // namespace std
typedef std::dcomplex Complex8;
Complex8 determinant(Complex8 _m[6][6])
{
Complex8 ret ( 0.0, 0.0 );
Complex8 ret5 ( 0.0, 0.0 );
Complex8 ret4 ( 0.0, 0.0 );
Complex8 ret3 ( 0.0, 0.0 );
ret3 =
( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][0]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][1]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][3];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][0]
+ ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][2];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][3]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret5 += _m[4][4] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][1]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][3];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][4]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][1]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][3];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][2];
ret4 += _m[3][1] * ret3;
ret5 += _m[4][0] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][2]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][4];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][0]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][3];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][2]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][4]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][0];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][0]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][2]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][3];
ret4 += _m[3][4] * ret3;
ret5 += _m[4][1] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][3]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][0]
+ ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][1];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][1]
+ ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][3]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][4];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][0]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][3];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][4]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][0];
ret4 += _m[3][3] * ret3;
ret5 += _m[4][2] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][0]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][4];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][0]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][1];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][1]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][4];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][4]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][0]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][2];
ret4 += _m[3][1] * ret3;
ret5 += _m[4][3] * ret4;
ret4 = 0.0;
ret += _m[5][5] * ret5;
ret5 = 0.0;
ret3 =
( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][2]
+ ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][4]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][5];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][1]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][4];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][5]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][1];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][1]
+ ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][4];
ret4 += _m[3][5] * ret3;
ret5 += _m[4][3] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][1]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][2];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][2]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][5];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][5]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][1]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][3];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][5]
+ ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret5 += _m[4][4] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][1]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][4];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][1]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][2];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][2]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][4];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][1]
+ ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][3];
ret4 += _m[3][2] * ret3;
ret5 += _m[4][5] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][3]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][5];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][2]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][4];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][5]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][2];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][2]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][4];
ret4 += _m[3][5] * ret3;
ret5 += _m[4][1] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][1]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][3]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][5];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][1]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][4];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][3]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][5]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][1];
ret4 += _m[3][4] * ret3;
ret5 += _m[4][2] * ret4;
ret4 = 0.0;
ret += _m[5][0] * ret5;
ret5 = 0.0;
ret3 =
( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][3]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][5];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][0]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][3]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][5];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][4];
ret4 += _m[3][3] * ret3;
ret5 += _m[4][2] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][4]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][2]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][5];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][4]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][0]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][2];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][2]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][4]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][5];
ret4 += _m[3][0] * ret3;
ret5 += _m[4][3] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][5]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][2]
+ ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][3];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][3]
+ ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][5]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][2]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][5];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][0]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][2];
ret4 += _m[3][5] * ret3;
ret5 += _m[4][4] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][2]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][0];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][2]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][3];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][3]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][0]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][2]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][4];
ret4 += _m[3][3] * ret3;
ret5 += _m[4][5] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][4]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][2];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][2]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][5];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][2]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][3]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][5];
ret4 += _m[3][2] * ret3;
ret5 += _m[4][0] * ret4;
ret4 = 0.0;
ret += _m[5][1] * ret5;
ret5 = 0.0;
ret3 =
( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][3]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][4];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][4]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][1]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][3]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][5];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][4]
+ ( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][1]
+ ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret5 += _m[4][0] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][3]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][0];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][3]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][4];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][4]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][0];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][3]
+ ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][5];
ret4 += _m[3][4] * ret3;
ret5 += _m[4][1] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][5]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][1];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][4]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][0];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][1]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][4];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][4]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][0];
ret4 += _m[3][1] * ret3;
ret5 += _m[4][3] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][3]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][5];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][5]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][3]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][0];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][5]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][1]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][3];
ret4 += _m[3][0] * ret3;
ret5 += _m[4][4] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][3]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][4]
+ ( _m[0][3] * _m[1][4] - _m[0][4] * _m[1][3] ) * _m[2][1];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][4] * _m[1][3] - _m[0][3] * _m[1][4] ) * _m[2][0]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][3]
+ ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][4];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][4]
+ ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][0]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][3]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][0];
ret4 += _m[3][4] * ret3;
ret5 += _m[4][5] * ret4;
ret4 = 0.0;
ret += _m[5][2] * ret5;
ret5 = 0.0;
ret3 =
( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][0]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][2];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][4]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][1];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][0]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][2]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][4];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][4]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][0]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][1];
ret4 += _m[3][2] * ret3;
ret5 += _m[4][5] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][1]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][4]
+ ( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][5];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][5]
+ ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][1]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][2];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][4]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][1];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][2]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][4];
ret4 += _m[3][1] * ret3;
ret5 += _m[4][0] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][4]
+ ( _m[0][2] * _m[1][4] - _m[0][4] * _m[1][2] ) * _m[2][5]
+ ( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][2];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][4]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][5];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][5]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][2];
ret4 += _m[3][4] * ret3;
ret3 =
( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][2]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][4]
+ ( _m[0][4] * _m[1][2] - _m[0][2] * _m[1][4] ) * _m[2][0];
ret4 += _m[3][5] * ret3;
ret5 += _m[4][1] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][1] * _m[1][4] - _m[0][4] * _m[1][1] ) * _m[2][0]
+ ( _m[0][4] * _m[1][0] - _m[0][0] * _m[1][4] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][4];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][4]
+ ( _m[0][4] * _m[1][1] - _m[0][1] * _m[1][4] ) * _m[2][5]
+ ( _m[0][5] * _m[1][4] - _m[0][4] * _m[1][5] ) * _m[2][1];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][4] * _m[1][5] - _m[0][5] * _m[1][4] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][4]
+ ( _m[0][0] * _m[1][4] - _m[0][4] * _m[1][0] ) * _m[2][5];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][5]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][1];
ret4 += _m[3][4] * ret3;
ret5 += _m[4][2] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][5]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][0]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][2];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][5]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][1];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][2]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][5];
ret4 += _m[3][1] * ret3;
ret5 += _m[4][4] * ret4;
ret4 = 0.0;
ret += _m[5][3] * ret5;
ret5 = 0.0;
ret3 =
( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][5]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][2];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][5]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][0]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][2];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][5]
+ ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][1];
ret4 += _m[3][0] * ret3;
ret5 += _m[4][3] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][1]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][3];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][0]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][2];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][3]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][0];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][0]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][2];
ret4 += _m[3][3] * ret3;
ret5 += _m[4][5] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][2]
+ ( _m[0][1] * _m[1][2] - _m[0][2] * _m[1][1] ) * _m[2][5]
+ ( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][1];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][1]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][2]
+ ( _m[0][2] * _m[1][1] - _m[0][1] * _m[1][2] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][3]
+ ( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][5]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][2];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][1]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][3]
+ ( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][5];
ret4 += _m[3][2] * ret3;
ret5 += _m[4][0] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][5]
+ ( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][0]
+ ( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][3];
ret4 += _m[3][2] * ret3;
ret3 =
( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][2]
+ ( _m[0][2] * _m[1][0] - _m[0][0] * _m[1][2] ) * _m[2][5]
+ ( _m[0][5] * _m[1][2] - _m[0][2] * _m[1][5] ) * _m[2][0];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][2] * _m[1][3] - _m[0][3] * _m[1][2] ) * _m[2][0]
+ ( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][2]
+ ( _m[0][0] * _m[1][2] - _m[0][2] * _m[1][0] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret3 =
( _m[0][2] * _m[1][5] - _m[0][5] * _m[1][2] ) * _m[2][3]
+ ( _m[0][3] * _m[1][2] - _m[0][2] * _m[1][3] ) * _m[2][5]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][2];
ret4 += _m[3][0] * ret3;
ret5 += _m[4][1] * ret4;
ret4 = 0.0;
ret3 =
( _m[0][3] * _m[1][5] - _m[0][5] * _m[1][3] ) * _m[2][1]
+ ( _m[0][5] * _m[1][1] - _m[0][1] * _m[1][5] ) * _m[2][3]
+ ( _m[0][1] * _m[1][3] - _m[0][3] * _m[1][1] ) * _m[2][5];
ret4 += _m[3][0] * ret3;
ret3 =
( _m[0][3] * _m[1][0] - _m[0][0] * _m[1][3] ) * _m[2][5]
+ ( _m[0][5] * _m[1][3] - _m[0][3] * _m[1][5] ) * _m[2][0]
+ ( _m[0][0] * _m[1][5] - _m[0][5] * _m[1][0] ) * _m[2][3];
ret4 += _m[3][1] * ret3;
ret3 =
( _m[0][5] * _m[1][0] - _m[0][0] * _m[1][5] ) * _m[2][1]
+ ( _m[0][0] * _m[1][1] - _m[0][1] * _m[1][0] ) * _m[2][5]
+ ( _m[0][1] * _m[1][5] - _m[0][5] * _m[1][1] ) * _m[2][0];
ret4 += _m[3][3] * ret3;
ret3 =
( _m[0][3] * _m[1][1] - _m[0][1] * _m[1][3] ) * _m[2][0]
+ ( _m[0][0] * _m[1][3] - _m[0][3] * _m[1][0] ) * _m[2][1]
+ ( _m[0][1] * _m[1][0] - _m[0][0] * _m[1][1] ) * _m[2][3];
ret4 += _m[3][5] * ret3;
ret5 += _m[4][2] * ret4;
ret += _m[5][4] * ret5;
return ret;
}
>Fix:
<how to correct or work around the problem, if known (multiple lines)>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: optimization/2692: excessive compile time with optimization
@ 2002-04-02 0:31 rth
0 siblings, 0 replies; 6+ messages in thread
From: rth @ 2002-04-02 0:31 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, snyder
Synopsis: excessive compile time with optimization
State-Changed-From-To: open->feedback
State-Changed-By: rth
State-Changed-When: Tue Apr 2 00:31:55 2002
State-Changed-Why:
No test case.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=2692
^ permalink raw reply [flat|nested] 6+ messages in thread
* optimization/2692: excessive compile time with optimization
@ 2001-04-29 21:06 snyder
0 siblings, 0 replies; 6+ messages in thread
From: snyder @ 2001-04-29 21:06 UTC (permalink / raw)
To: gcc-gnats
>Number: 2692
>Category: optimization
>Synopsis: excessive compile time with optimization
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Apr 29 21:06:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: scott snyder
>Release: 3.0 20010429 (prerelease)
>Organization:
>Environment:
System: Linux karma 2.2.16-22 #1 Tue Aug 22 16:49:06 EDT 2000 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../egcs/configure --prefix=/usr/local/egcs --enable-threads=posix --enable-long-long
>Description:
If i try to compile the source below with -O2, gcc runs for over 45 minutes
and grows to over 300 MB. On my machine, it exhausts the available
swap space and dies before completing.
Without optimization, it completes in a couple minutes.
gcc 2.95.2 dies immediately with an ICE on this source, regardless
of whether or not optimization is on, so i guess this isn't a regression.
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-04-12 23:43 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-12 16:43 optimization/2692: excessive compile time with optimization rth
-- strict thread matches above, loose matches on Subject: below --
2002-04-02 1:56 Richard Henderson
2002-04-02 1:34 rth
2002-04-02 1:16 Scott Snyder
2002-04-02 0:31 rth
2001-04-29 21:06 snyder
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).