[Bug tree-optimization/19910] [4.2/4.3 regression] ICE with -ftree-loop-linear

2007-06-18 Thread pinskia at gcc dot gnu dot org


--- Comment #12 from pinskia at gcc dot gnu dot org  2007-06-18 06:01 
---
This no longer crashes for me.


-- 


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



[Bug tree-optimization/21485] [4.0/4.1/4.2/4.3 Regression] codegen regression due to PRE increasing register pressure (missing load PRE really)

2007-06-18 Thread pinskia at gcc dot gnu dot org


--- Comment #22 from pinskia at gcc dot gnu dot org  2007-06-18 06:12 
---
This is basically fixed by the pointer_plus except we still have some
combinable code (though this is not PRE's fault); see
http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01996.html for how to fix that
issue.


-- 


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



[Bug middle-end/30784] [4.3 regression] ICE on loop vectorization (-O1 -march=athlon-xp -ftree-vectorize)

2007-06-18 Thread pinskia at gcc dot gnu dot org


--- Comment #11 from pinskia at gcc dot gnu dot org  2007-06-18 06:16 
---
*** Bug 30958 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dcb314 at hotmail dot com


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



[Bug tree-optimization/30958] [4.3 Regression] ice for legal code with -ftree-vectorize -Os (-m64)

2007-06-18 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2007-06-18 06:16 ---


*** This bug has been marked as a duplicate of 30784 ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/32383] [4.3 regression] ICE with reciprocals and -ffast-math

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2007-06-18 06:41 ---
Patch in testing.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-18 06:41:08
   date||


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



[Bug middle-end/32176] [4.3 Regression] ICE tree-type mismatch: expected integer_cst, have plus_expr in int_cst_value, at tree.c:7720

2007-06-18 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2007-06-18 06:42 ---
There is a cast which confuses SCEV.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org


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



[Bug libstdc++/32354] libstdc++.so.6 missing RPATH

2007-06-18 Thread stephan dot bergmann at sun dot com


--- Comment #5 from stephan dot bergmann at sun dot com  2007-06-18 06:54 
---
Re #3:  http://gcc.gnu.org/onlinedocs/libstdc++/install.html#usage is not
relevant here.  That info is about how client code can find libstdc++.so.  This
issue is about how libstdc++.so can find the libraries it itself depends on.

Re #4:  Not sure I understand you completely.  If you move libstdc++.so and
libgcc_s.so somewhere else but keep their relative locations intact (i.e., both
in the same directory), RPATH=$ORIGIN in libstdc++.so still works to locate the
matching libgcc_s.so.


-- 


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



[Bug middle-end/20983] [4.0/4.1/4.2/4.3 Regression] varargs functions force va_list variable to stack unnecessarily

2007-06-18 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2007-06-18 06:55 
---
For -O1, it is even worse.  I think we need to mark va_start/va_end as cannot
call clober their inputs at the tree level.  This should at least fix the -O1
issue.  It might also help code gen in other cases which I am not thinking of
currently.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org


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



[Bug bootstrap/32334] Bootstrap comparison failure when comparing stage 2 and 3

2007-06-18 Thread redriver at korea dot ac dot kr


--- Comment #2 from redriver at korea dot ac dot kr  2007-06-18 07:40 
---
(In reply to comment #1)
 What version of GCC are you starting with?
 This works for me on an i686-linux-gnu machine (a pentium 4D).
 
I think I found the problem. Previously, I use the gcc-3.2.2 to bootstrap the
gcc-4.2.0. But when I used higher version of gcc (gcc-4.1.2) to bootstrap then
there was no error. I think there is some incompatible between the two versions
3.2.2 and 4.2.0. 


-- 


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



[Bug tree-optimization/30175] [4.3 Regression] Runtime regressions with mem-ssa merge in Polyhedron and tramp3d-v4

2007-06-18 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2007-06-18 07:54 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/20373] INTRINSIC symbols can be given the wrong type

2007-06-18 Thread patchapp at dberlin dot org


--- Comment #13 from patchapp at dberlin dot org  2007-06-18 08:00 ---
Subject: Bug number PR20373

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01216.html


-- 


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



[Bug tree-optimization/32383] [4.3 regression] ICE with reciprocals and -ffast-math

2007-06-18 Thread uros at gcc dot gnu dot org


--- Comment #3 from uros at gcc dot gnu dot org  2007-06-18 08:31 ---
Subject: Bug 32383

Author: uros
Date: Mon Jun 18 08:30:47 2007
New Revision: 125790

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125790
Log:
PR tree-optimization/32383
* targhooks.c (default_builtin_reciprocal): Add new bool argument.
* targhooks.h (default_builtin_reciprocal): Update prototype.
* target.h (struct gcc_target): Update builtin_reciprocal.
* doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
* tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
when fndecl is in BUILT_IN_MD class.
(execute_convert_to_rsqrt): Ditto.

* config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
Convert BUILT_IN_SQRTF code only  when md_fn is false.

testsuite/ChangeLog:

PR tree-optimization/32383
* testsuite/g++.dg/opt/pr32383.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/opt/pr32383.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/doc/tm.texi
trunk/gcc/target.h
trunk/gcc/targhooks.c
trunk/gcc/targhooks.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-math-opts.c


-- 


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



[Bug tree-optimization/32383] [4.3 regression] ICE with reciprocals and -ffast-math

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-06-18 08:33 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/31723] Use reciprocal and reciprocal square root with -ffast-math

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #29 from ubizjak at gmail dot com  2007-06-18 08:56 ---
Patch was committed to SVN, so closing as fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/32369] [frv] macro DF_LIVE_IN passed 2 arguments, but takes just 1

2007-06-18 Thread patchapp at dberlin dot org


--- Comment #2 from patchapp at dberlin dot org  2007-06-18 09:55 ---
Subject: Bug number PR target/32369

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01225.html


-- 


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



[Bug tree-optimization/18219] [4.0/4.1/4.2/4.3 Regression] bloats code by 31%

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #25 from ubizjak at gmail dot com  2007-06-18 10:17 ---
(In reply to comment #24)
   MEM[index: ivtmp.39, offset: 0x0fffc] = (MEM[index: ivtmp.35, offset:
 0x0fffc] + 1  1) - MEM[index: ivtmp.39, offset: 0x0fffc];
 
 
 We still get an offset of -4.

PR target/24669


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

  BugsThisDependsOn||24669


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



[Bug tree-optimization/32075] can't determine dependence between p-a[x+i] and p-a[x+i+1] where x is invariant but defined in the function

2007-06-18 Thread dorit at il dot ibm dot com


--- Comment #2 from dorit at il dot ibm dot com  2007-06-18 11:03 ---
I see this in the vectorizer dump file (with mainline from a few days ago):

(compute_affine_dependence
  (stmt_a =
D.3027_19 = p_7-a[D.3026_18])
  (stmt_b =
p_7-a[D.3025_17] = D.3027_19)
Data ref a:
(Data Ref:
  stmt: D.3027_19 = p_7-a[D.3026_18];
  ref: p_7-a[D.3026_18];
  base_object: p_7-a[0];
  Access function 0: {x1_5 + 1, +, 1}_2
  Access function 1: 0B
)
Data ref b:
(Data Ref:
  stmt: p_7-a[D.3025_17] = D.3027_19;
  ref: p_7-a[D.3025_17];
  base_object: p_7-a[0];
  Access function 0: {x1_5, +, 1}_2
  Access function 1: 0B
)
affine dependence test not usable: access function not affine or constant.
(dependence classified: scev_not_known)
)

(In reply to comment #1)
 Ok, I have a patch for this issue, I am going to test it with -ftree-vectorize

so how is that coming along? do you think it will also address PRs
32375/6/7/8/9 ?


-- 


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



[Bug tree-optimization/32378] can't determine dependence (distinct sections of an array)

2007-06-18 Thread dorit at il dot ibm dot com


--- Comment #4 from dorit at il dot ibm dot com  2007-06-18 11:08 ---
I see this in the vectorizer dump file (with mainline from a few days ago):

(compute_affine_dependence
  (stmt_a =
D.1423_50 = (*a_49(D))[D.1422_48])
  (stmt_b =
(*a_49(D))[D.1420_51] = D.1425_54)
Data ref a:
(Data Ref:
  stmt: D.1423_50 = (*a_49(D))[D.1422_48];
  ref: (*a_49(D))[D.1422_48];
  base_object: (*a_49(D))[0];
  Access function 0: {pretmp.48_45 + 1, +, 1}_1
  Access function 1: 0B
)
Data ref b:
(Data Ref:
  stmt: (*a_49(D))[D.1420_51] = D.1425_54;
  ref: (*a_49(D))[D.1420_51];
  base_object: (*a_49(D))[0];
  Access function 0: {0, +, 1}_1
  Access function 1: 0B
)
affine dependence test not usable: access function not affine or constant.
(dependence classified: scev_not_known)
)
(compute_affine_dependence
  (stmt_a =
D.1424_53 = (*b_52(D))[D.1420_51])
  (stmt_b =
(*a_49(D))[D.1420_51] = D.1425_54)
)

(the IR looks a bit different than PR32075, but the data-rependence analysis
fails with the same problem). pinskia - are you still planning to address this
issue?


-- 


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



[Bug c++/32350] Very high compile times for template code

2007-06-18 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2007-06-18 11:26 ---
Execution times (seconds)
 preprocessing :   0.09 ( 0%) usr   0.07 (20%) sys   0.18 ( 0%) wall   
 376 kB ( 1%) ggc
 parser:   0.26 ( 0%) usr   0.12 (34%) sys   0.45 ( 0%) wall  
33574 kB (81%) ggc
 name lookup   :   0.15 ( 0%) usr   0.13 (37%) sys   0.23 ( 0%) wall   
3842 kB ( 9%) ggc
 tree gimplify :  13.72 (14%) usr   0.00 ( 0%) sys  13.71 (14%) wall   
 555 kB ( 1%) ggc
 expand:  81.23 (85%) usr   0.01 ( 3%) sys  81.26 (85%) wall   
 338 kB ( 1%) ggc
 varconst  :   0.00 ( 0%) usr   0.01 ( 3%) sys   0.01 ( 0%) wall   
 128 kB ( 0%) ggc
 global alloc  :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall   
  36 kB ( 0%) ggc
 flow 2:   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  34 kB ( 0%) ggc
 TOTAL :  95.48 0.3595.90 
41385 kB


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||compile-time-hog


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



[Bug tree-optimization/32353] [4.1/4.2 Regression] Miscompilation with RESULT_DECL

2007-06-18 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-18 11:26:54
   date||


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



[Bug rtl-optimization/32366] [4.3 Regression] Segfault in significand_size with -ftree-vectorize

2007-06-18 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2007-06-18 11:28 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/32390] New: tree-ssa-math-opts.c performs too many IL scans

2007-06-18 Thread dnovillo at gcc dot gnu dot org
In tree-ssa-math-opts.c we already had a pass to cse sin and cos.  The new
reciprocal sqrt pass is mechanically similar to that one.  It does a linear
scan over the CFG applying these peephole transformations.  This new pass
should not be doing a separate IL scan to do its job.

Perhaps it would be a good idea to do a single scan that calls back to
all these transformations on every statement?  I realize that each pass
requires its own setup and may need to do things a bit differently, but
perhaps we can save ourselves multiple IL scans if we generalize it a bit.


-- 
   Summary: tree-ssa-math-opts.c performs too many IL scans
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dnovillo at gcc dot gnu dot org


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



[Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code

2007-06-18 Thread dnovillo at gcc dot gnu dot org


--- Comment #25 from dnovillo at gcc dot gnu dot org  2007-06-18 12:30 
---

Fixed symptoms with http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01081.html. 
Real fix still being discussed.


-- 

dnovillo at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||amacleod at redhat dot com


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



[Bug rtl-optimization/32372] [4.3 Regression] ICE in df_refs_verify, at df-scan.c:4065

2007-06-18 Thread zadeck at naturalbridge dot com


--- Comment #1 from zadeck at naturalbridge dot com  2007-06-18 12:33 
---
I believe that the failure is due to a an insn illegally sharing with a
reg_equal note.  Insn 8 is modified in regmove.  When this happens, the
reg_equal note in insn 22 magically changes.  That reg_equal note was changed
last in cse.


-- 

zadeck at naturalbridge dot com changed:

   What|Removed |Added

 AssignedTo|zadeck at naturalbridge dot |bonzini at gnu dot org
   |com |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-18 12:33:52
   date||


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



[Bug rtl-optimization/32372] [4.3 Regression] ICE in df_refs_verify, at df-scan.c:4065

2007-06-18 Thread zadeck at naturalbridge dot com


--- Comment #2 from zadeck at naturalbridge dot com  2007-06-18 12:35 
---
s/cse/cse1/


-- 


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



[Bug target/32335] libgcc build failure, ICE in cselib_record_set, at cselib.c:1508

2007-06-18 Thread patchapp at dberlin dot org


--- Comment #7 from patchapp at dberlin dot org  2007-06-18 12:40 ---
Subject: Bug number PR target/32335

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01233.html


-- 


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



[Bug target/32369] [frv] macro DF_LIVE_IN passed 2 arguments, but takes just 1

2007-06-18 Thread zadeck at naturalbridge dot com


--- Comment #3 from zadeck at naturalbridge dot com  2007-06-18 13:18 
---
Subject: Re:  [frv] macro DF_LIVE_IN passed 2 arguments,
 but takes just 1

:reviewmail:

patchapp at dberlin dot org wrote:
 --- Comment #2 from patchapp at dberlin dot org  2007-06-18 09:55 ---
 Subject: Bug number PR target/32369

 A patch for this bug has been added to the patch tracker.
 The mailing list url for the patch is
 http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01225.html


   
ok for commit.

thanks

kenny


-- 


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



[Bug target/32335] libgcc build failure, ICE in cselib_record_set, at cselib.c:1508

2007-06-18 Thread aesok at gcc dot gnu dot org


--- Comment #8 from aesok at gcc dot gnu dot org  2007-06-18 13:33 ---
Im working on patch for avr target.

Anatoly.


-- 


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



[Bug tree-optimization/32390] tree-ssa-math-opts.c performs too many IL scans

2007-06-18 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-06-18 13:56 ---
All three transformations are done at different stages of the optimization
pipeline due to various reasons.


-- 


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



[Bug tree-optimization/32390] tree-ssa-math-opts.c performs too many IL scans

2007-06-18 Thread dnovillo at google dot com


--- Comment #2 from dnovillo at google dot com  2007-06-18 14:00 ---
Subject: Re:  tree-ssa-math-opts.c performs too
 many IL scans

On 6/18/07 9:56 AM, rguenth at gcc dot gnu dot org wrote:
 --- Comment #1 from rguenth at gcc dot gnu dot org  2007-06-18 13:56 
 ---
 All three transformations are done at different stages of the optimization
 pipeline due to various reasons.

We need a better explanation than this.  Uros agreed to summarize the
IRC discussion to close this issue.  It'd be useful if we keep that same
discussion on the source code itself.


-- 


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



[Bug fortran/32391] New: Default optimization (level 1) bug of loop optimization (maybe)

2007-06-18 Thread sunjoong at gmail dot com
This bug occurs on gfortran 4.1 and 4.2 .
I think it is not a gfortran specific bug; I checked g77 and g95 on gcc 3.4.6..


I had compiled a legacy fortran77 code and foud a bug;

$ gfortran -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
Aligned length=  89, RMSD=  6.41, TM-score= 0.24257, ID=0.042

$ gfortran -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
Aligned length=  91, RMSD=  6.35, TM-score=0.24762 , ID=0.024

$ pgf77 -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
Aligned length=  91, RMSD=  6.35, TM-score=0.24762, ID= 0.024

$ pgf77 -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
Aligned length=  91, RMSD=  6.35, TM-score=0.24762, ID=0.024



That optimization error is on a bellow subroutine;


* Dynamic programming for alignment.
* Input: score(i,j), and gap_open
* Output: invmap(j)

  SUBROUTINE DP(NSEQ1,NSEQ2)
  PARAMETER(nmax=5000)
  LOGICAL*1 DIR
  common/dpc/score(nmax,nmax),gap_open,invmap(nmax)
  dimension DIR(0:nmax,0:nmax),VAL(0:nmax,0:nmax)
  REAL H,V

***   initialize the matrix:
  val(0,0)=0
  do i=1,nseq1
dir(i,0)=.false.
val(i,0)=0
  enddo
  do j=1,nseq2
dir(0,j)=.false.
val(0,j)=0
invmap(j)=-1
  enddo

***   decide matrix and path:
  DO j=1,NSEQ2
DO i=1,NSEQ1
  D=VAL(i-1,j-1)+SCORE(i,j)
  H=VAL(i-1,j)
  if(DIR(i-1,j))H=H+GAP_OPEN
  V=VAL(i,j-1)
  if(DIR(i,j-1))V=V+GAP_OPEN

  IF(( D.GE.H).AND.(D.GE.V)) THEN
DIR(I,J)=.true.
VAL(i,j)=D
  ELSE
DIR(I,J)=.false.
if(V.GE.H)then
  val(i,j)=v
else
  val(i,j)=h
end if
  ENDIF
ENDDO
  ENDDO

***   extract the alignment:
  i=NSEQ1
  j=NSEQ2
  DO WHILE((i.GT.0).AND.(j.GT.0))
IF(DIR(i,j))THEN
  invmap(j)=i
  i=i-1
  j=j-1
ELSE
  H=VAL(i-1,j)
  if(DIR(i-1,j))H=H+GAP_OPEN
  V=VAL(i,j-1)
  if(DIR(i,j-1))V=V+GAP_OPEN
  IF( V.GE.H) THEN
j=j-1
  ELSE
i=i-1
  ENDIF
ENDIF
  ENDDO

c^^^Dynamical programming done ^^^
  return
  END 


Files;

http://zhang.bioinformatics.ku.edu/TM-align/TMalign.f
http://zhang.bioinformatics.ku.edu/TM-align/benchmark/1aquA.pdb
http://zhang.bioinformatics.ku.edu/TM-align/benchmark/1avaC.pdb


-- 
   Summary: Default optimization (level 1) bug of loop optimization
(maybe)
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sunjoong at gmail dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c/25575] some uninitialized warning disappear when compile without -O

2007-06-18 Thread matze at braunis dot de


--- Comment #2 from matze at braunis dot de  2007-06-18 14:17 ---
Why don't you turn on dataflow computation to get the warning even with -O0?
-O0 is typically used for developing/debugging, so as a user I want to see all
possible warnings...


-- 


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



[Bug fortran/32391] Default optimization (level 1) bug of loop optimization (maybe)

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #1 from sunjoong at gmail dot com  2007-06-18 14:18 ---
Created an attachment (id=13727)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13727action=view)
A legacy fortran77 program


-- 


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



[Bug fortran/32391] Default optimization (level 1) bug of loop optimization (maybe)

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #2 from sunjoong at gmail dot com  2007-06-18 14:19 ---
Created an attachment (id=13728)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13728action=view)
A input data file of TMalign


-- 


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



[Bug fortran/32391] Default optimization (level 1) bug of loop optimization (maybe)

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #3 from sunjoong at gmail dot com  2007-06-18 14:20 ---
Created an attachment (id=13729)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13729action=view)
A input data file of TMalign


-- 


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



[Bug target/32392] New: Support using -mrecip w/o additional Newton-Raphson run

2007-06-18 Thread burnus at gcc dot gnu dot org
Paolo Bonzini wrote:
 That said, there is a whole bunch of applications that would kill for 
 -mrecip, 
 even for 11bit ones. Games are one of them, for sure ;)
 What about -mrecip=0/1/2 for the number of NR steps? Or would two steps be 
 slower than divss?

 I was thinking of adding this as a follow-up patch ;) Just look how the 
 operations are grouped together.

As Richard pointed out: Having two NR does not make sense. For some cases doing
with out Newton-Raphson is enough. (Example: Games -- or SPEC CPU 2006:
http://www.hpcwire.com/hpc/1556972.html)

Other compilers have this option, e.g. Pathscale's -OPT:rsqrt=2 [yes, this is
used for SPEC runs ;-)]


-- 
   Summary: Support using -mrecip w/o additional Newton-Raphson run
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
GCC target triplet: x86_64-*-* i686-*-*


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



[Bug fortran/32393] New: gfortran - incorrect run time results

2007-06-18 Thread dir at lanl dot gov
This program runs Ok on the Macintosh versions of gfortran. It runs Ok on the
i386-pc-mingw32 version of gfortran using -g, but fails using -O3. It always
fails on the cygwin version of gfortran -

 gfortran -o g95Test01 g95Test01.f
 ./g95Test01
1

 lower triangular matrix with   3 rows

 row   10.3214E-38
 row   20.1000E+01  0.2000E+01
 row   30.3000E+01  0.4000E+01  0.5000E+01
  iprec =   1
1

 lower triangular matrix with   3 rows

 row   10.6428E-38
 row   20.1000E+01  0.4000E+01
 row   30.3000E+01  0.4000E+01  0.1000E+02
STOP 0
 cat g95Test01.f
*deck vr2
  subroutine   vr2 ( intp, ivg, ccrans, cc, ns, stdb, stdm, t,
 $   k2, nlin, istab )
  save
c+-+
c|   master foutine for|
c|   second variation of the strain energy |
c|   at an integration point   |
c| |
c|   output quantities |
c|t  local accumulator for elt second variation|
c|w  global accumulator for elt second variatio|
c+-+
c+-+
c|   t y p ed i m e n s i o n |
c+-+
  character  its1*4
  character  title*72
  integert
  real   cc,   ctrans,   dprod2,   sdb,  sdm,
 $   stdb, stdm, sum,  ttt,  uf,
 $   vf,   wsf
  real   tgc
  dimension  cc(1),ccrans(1),ivg(1),   stdb(1),  stdm(1),
 $   t(100)
c+-+
c|   e q u i v a l e n c e s   |
c+-+
  equivalence(jt,tt)
c+-+
c|   c o m m o ng l o b a l s |
c+-+
  common/comvd1/ jelt, jntp
  common/comvd2/ plva, plvb, lpr,  iulpr,wplv(8)
  common/comvd3/ wsf(12,9),uf(20),   vf(20)
  common/con5  / dmy(3),   icom(18)
  common/corot1/ iadcor(30), lcor, kcor
  common/corot8/ ctrans(150)
  common/fmloc / jf(6),js(6),jp(6),l1,   l2,
 $   l3,   l4,   l5,   l6
  common/forms / mtrans(40), itrans(150),sdb(540),
 $   sdm(1008),npform
  common/hybcom/ ihyb, ihres(9), ttt(78)
  common/nitnot/ nit,  not
  common/prec  / iprec
  common/scrat1/ w(600)
  common/test  / ktest
  common/titcom/ title
  common/vr410c/ tgc(3,3,4)
  common/vrdat / np,   np1,  np2,  np3,  np4,
 $   np5,  np6,  np7,  np8,  np9,
 $   np10
  common/vrdat1/ nmsh, ntyp, nods, neta, nitp,
 $   nst,  ntr,  nmp,  nth,  nvg,
 $   nvl,  nvb,  nvm,  nvr2, idvr,
 $   ifab
  common a(100)
c+-+
c|   d a t a   |
c+-+
  data   its1 / 'dbug' /
c+-+
c|   l o g i c |
c+-+
  ielt=jelt
  npr=iprec
  npd=3-npr
  nvr2 = 1
  if(intp.gt.1) go to 20
c+-+
c| begin new element   |
c+-+
  nj=nvg+5
  nn=nvg+4+(nvg*nvg+nvg)/npd
  nnl=nvg+4+(nvl*nvl+nvl)/npd
  t(1)=nvg
  t(4)=1
  call mover (ivg,1,t(5),1,nvg)
  if(k2.eq.0.or.nvr2.gt.0) go to 5
  if(istab.eq.1.or.nlin.eq.1) go to 5
  return
5 continue
c+-+
c| clear t for element stiffness matrix|
c+-+
  call mover (0.,0,t,1,nnl)
  t(1)=nvg
  t(4)=1
  call mover (ivg,1,t(5),1,nvg)
c
  nl1 = nvl
  if(lpr+iulpr.gt.0) nl1=nvl
   20 continue

[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dir at lanl dot gov


--- Comment #1 from dir at lanl dot gov  2007-06-18 14:48 ---
Here are the mingw32 results -

$ gfortran  -g  -o g95Test01 g95Test01.f
[EMAIL PROTECTED] ~/tests
$ g95Test01
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
  iprec =   1
1

 lower triangular matrix with   3 rows

 row   10.1600E+02
 row   20.9000E+01  0.2000E+02
 row   30.1100E+02  0.1200E+02  0.2600E+02

[EMAIL PROTECTED] ~/tests
$ gfortran  -O3  -o g95Test01 g95Test01.f

[EMAIL PROTECTED] ~/tests
$ g95Test01
1

 lower triangular matrix with   3 rows

 row   10.E+00
 row   20.1000E+01  0.2000E+01
 row   30.3000E+01  0.4000E+01  0.5000E+01
  iprec =   1
1

 lower triangular matrix with   3 rows

 row   10.E+00
 row   20.1000E+01  0.4000E+01
 row   30.3000E+01  0.4000E+01  0.1000E+02

[EMAIL PROTECTED] ~/tests
$ cat g95Test01.f
*deck vr2
  subroutine   vr2 ( intp, ivg, ccrans, cc, ns, stdb, stdm, t,
 $   k2, nlin, istab )
  save
c+-+
c|   master foutine for|
c|   second variation of the strain energy |
c|   at an integration point   |
c| |
c|   output quantities |
c|t  local accumulator for elt second variation|
c|w  global accumulator for elt second variatio|
c+-+
c+-+
c|   t y p ed i m e n s i o n |
c+-+
  character  its1*4
  character  title*72
  integert
  real   cc,   ctrans,   dprod2,   sdb,  sdm,
 $   stdb, stdm, sum,  ttt,  uf,
 $   vf,   wsf
  real   tgc
  dimension  cc(1),ccrans(1),ivg(1),   stdb(1),  stdm(1),
 $   t(100)
c+-+
c|   e q u i v a l e n c e s   |
c+-+
  equivalence(jt,tt)
c+-+
c|   c o m m o ng l o b a l s |
c+-+
  common/comvd1/ jelt, jntp
  common/comvd2/ plva, plvb, lpr,  iulpr,wplv(8)
  common/comvd3/ wsf(12,9),uf(20),   vf(20)
  common/con5  / dmy(3),   icom(18)
  common/corot1/ iadcor(30), lcor, kcor
  common/corot8/ ctrans(150)
  common/fmloc / jf(6),js(6),jp(6),l1,   l2,
 $   l3,   l4,   l5,   l6
  common/forms / mtrans(40), itrans(150),sdb(540),
 $   sdm(1008),npform
  common/hybcom/ ihyb, ihres(9), ttt(78)
  common/nitnot/ nit,  not
  common/prec  / iprec
  common/scrat1/ w(600)
  common/test  / ktest
  common/titcom/ title
  common/vr410c/ tgc(3,3,4)
  common/vrdat / np,   np1,  np2,  np3,  np4,
 $   np5,  np6,  np7,  np8,  np9,
 $   np10
  common/vrdat1/ nmsh, ntyp, nods, neta, nitp,
 $   nst,  ntr,  nmp,  nth,  nvg,
 $   nvl,  nvb,  nvm,  nvr2, idvr,
 $   ifab
  common a(100)
c+-+
c|   d a t a   |
c+-+
  data   its1 / 'dbug' /
c+-+
c|   l o g i c |
c+-+
  ielt=jelt
  npr=iprec
  npd=3-npr
  nvr2 = 1
  if(intp.gt.1) go to 20
c+-+
c| begin new element   |
c+-+
  nj=nvg+5
  nn=nvg+4+(nvg*nvg+nvg)/npd
  nnl=nvg+4+(nvl*nvl+nvl)/npd
  t(1)=nvg
  t(4)=1
  call mover (ivg,1,t(5),1,nvg)
  if(k2.eq.0.or.nvr2.gt.0) go to 5
  if(istab.eq.1.or.nlin.eq.1) go to 5
  return
5 

[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dominiq at lps dot ens dot fr


--- Comment #2 from dominiq at lps dot ens dot fr  2007-06-18 14:52 ---
Compiling your code with g95 gives a lot of warnings. You should probably check
the use of the different subroutines.

In file pr32393.f:189

  subroutine clect2
 1
In file pr32393.f:155

  call clect2 (t(nj),w(nj),nvg,nl1,mtrans,ctrans,itrans)
   2
Warning (154): Inconsistent number of arguments in reference to 'clect2' at (1)
and (2)
In file pr32393.f:168

  call prmx(t(nj),nvg)
1
In file pr32393.f:201

  subroutine prmx (a,n)
   2
Warning (155): Inconsistent types (INTEGER(4)/REAL(4)) in actual argument lists
at (1) and (2)
In file pr32393.f:156

  call prmx(t(nj),nvg)
1
In file pr32393.f:201

  subroutine prmx (a,n)
   2
Warning (155): Inconsistent types (INTEGER(4)/REAL(4)) in actual argument lists
at (1) and (2)
In file pr32393.f:140

  if (title(1:4).eq.its1 .and. ielt.le.4) call prmx(t(nj),nvg)
1
In file pr32393.f:201

  subroutine prmx (a,n)
   2
Warning (155): Inconsistent types (INTEGER(4)/REAL(4)) in actual argument lists
at (1) and (2)
In file pr32393.f:133

  call prmx (t(nj),nvl)
 1
In file pr32393.f:201

  subroutine prmx (a,n)
   2
Warning (155): Inconsistent types (INTEGER(4)/REAL(4)) in actual argument lists
at (1) and (2)
In file pr32393.f:195

  subroutine mover
 1
In file pr32393.f:154

  call mover (0.,0,t(nj),1,nj1)
   2
Warning (154): Inconsistent number of arguments in reference to 'mover' at (1)
and (2)
In file pr32393.f:192

  subroutine mid2
 1
In file pr32393.f:139

  call mid2 (4,tgc,t(nj),t(nj))
   2
Warning (154): Inconsistent number of arguments in reference to 'mid2' at (1)
and (2)
In file pr32393.f:198

  subroutine penal
 1
In file pr32393.f:120

  if(ntyp.eq.411) call penal(a(ll),istab,t(nj))
   2
Warning (154): Inconsistent number of arguments in reference to 'penal' at (1)
and (2)
In file pr32393.f:230

  subroutine scprod
 1
In file pr32393.f:101

  call scprod (ns*ns,1,1,cc,cc,sum)
   2
Warning (154): Inconsistent number of arguments in reference to 'scprod' at (1)
and (2)
In file pr32393.f:227

  subroutine scopu
 1
In file pr32393.f:152

  210 call scopu (nnl,t,w)
   2
Warning (154): Inconsistent number of arguments in reference to 'scopu' at (1)
and (2)
In file pr32393.f:236

  subroutine vr22d
 1
In file pr32393.f:112

  if (idvr.eq.2) call vr22d (cc,ns,stdb,stdm,nlin,istab,t,t(nj))
  2
Warning (154): Inconsistent number of arguments in reference to 'vr22d' at (1)
and (2)
In file pr32393.f:233

  subroutine vr21d
 1
In file pr32393.f:108

  if (idvr.eq.1) call vr21d (cc,ns,stdb,nlin,istab,t)
  2
Warning (154): Inconsistent number of arguments in reference to 'vr21d' at (1)
and (2)
In file pr32393.f:185

  call vr2 ( intp, ivg, ccrans, cc, ns, stdb, stdm, t,
1
In file pr32393.f:2

cc, ns, stdb, stdm, t,
2
Warning (155): Inconsistent types (REAL(4)/INTEGER(4)) in actual argument lists
at (1) and (2)
In file pr32393.f:239

  subroutine vr23d
 1
In file pr32393.f:116

  if (idvr.eq.3) call vr23d (cc,ns,stdm,nlin,istab,t)
  2
Warning (154): Inconsistent number of arguments in reference to 'vr23d' at (1)
and (2)


-- 


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



[Bug other/32351] Wrong DFP format is used in libdecnumber

2007-06-18 Thread hjl at lucon dot org


--- Comment #1 from hjl at lucon dot org  2007-06-18 15:02 ---
Fixed by

http://gcc.gnu.org/ml/gcc-cvs/2007-06/msg00569.html


-- 

hjl at lucon dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug target/32392] Support using -mrecip w/o additional Newton-Raphson run

2007-06-18 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-06-18 15:03 ---
Initial suggestion, see:
http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01068.html

Richard's remark:
http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01224.html
 Two NR steps don't make sense, they wouldn't improve accuracy because of the
 extra roundings we get for the NR.  And of course it would be slower.

(However, two NR are said to be enough for double precision. I don't know
whether doing rsqrt+(2x NR) is faster than 1/sqrt() for double or not.)

Related - closed - PRs:
PR 31723 - Use reciprocal and reciprocal square root with -ffast-math (FIXED)
PR 32352 - Using rsqrt, Polyhedron's aermod test crashes (WONTFIX)


-- 


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dir at lanl dot gov


--- Comment #3 from dir at lanl dot gov  2007-06-18 15:05 ---
The only subroutine actually used is prmx. The rest are dummies to make the
linker happy. With g95, you get the correct results with -g and incorrect
results with -O3 -

[QuadG5:~/junk] dir% g95 -O3 -d8 -fstatic -Wno=121,155,154 -o g95Test01
g95Test01.f
[QuadG5:~/junk] dir% g95Test01
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
  iprec = 1
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
[QuadG5:~/junk] dir% g95 -g -d8 -fstatic -Wno=121,155,154 -o g95Test01
g95Test01.f
[QuadG5:~/junk] dir% g95Test01
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
  iprec = 1
1

 lower triangular matrix with   3 rows

 row   10.1600E+02
 row   20.9000E+01  0.2000E+02
 row   30.1100E+02  0.1200E+02  0.2600E+02

[QuadG5:~/junk] dir% g95 --v
Using built-in specs.
Target: 
Configured with: ../configure --enable-languages=c
Thread model: posix
gcc version 4.0.3 (g95 0.91!) Jun  4 2007
[QuadG5:~/junk] dir% 


-- 


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



[Bug fortran/32391] Generate wrong optimization code from fortran 77

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #4 from sunjoong at gmail dot com  2007-06-18 15:08 ---
Thank you, Tobias

I had missunderstood the default optimization level for gfortran
but the issue exists, I think.

I had traced side effects of optimization levels for the legacy program;
-O0 level and -O1 level were different
but from -O1 to -O3 gave same (wrong) results on gfortran, g77 and g95.
I tested it with pgi fortran and got same (right) results.

I checked gfortran 4.0.4, 4.1.2 and 4.2.0.
I did not check gfortran 4.3.

2007/6/18, Tobias Burnus [EMAIL PROTECTED]:
 Sunjoong Lee wrote:
  I had compiled a legacy fortran77 code and foud a bug;
 $ gfortran -o TMalign TMalign.f
 $ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
 Aligned length=  89, RMSD=  6.41, TM-score= 0.24257, ID=0.042
 $ gfortran -O0 -o TMalign TMalign.f
 $ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
 Aligned length=  91, RMSD=  6.35, TM-score=0.24762 , ID=0.024
 I find this difference very odd as -O0 is the default optimization for
 gfortran. Other than that I get always the same result  (91) with all
 -O levels I tried with gfortran 4.3, 4.2.0, 4.1.3 and ifort.
 
 Which version of the compiler are you using on which platform. (Use
 gfortran -v to shows this information.)
 Can you also show what alias gfortran (or type gfortran) shows? Just
 to make sure there is no alias which adds options.
 
 Tobias
 


-- 


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dominiq at lps dot ens dot fr


--- Comment #4 from dominiq at lps dot ens dot fr  2007-06-18 15:29 ---
 The only subroutine actually used is prmx. The rest are dummies to make the 
 linker happy.

One thing which is obviously wrong is that 't' is declared as integer in vr2,
but is real in the calling program and in the prmx subroutine.  Now I don't
know how the compiler is supposed to behave when there is a mismatch between
the arguments in the subroutines and their call. I suspect that the code is
badly invalid and as such can produce any result (as it is the case).


-- 


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



[Bug fortran/32391] Generate wrong optimization code on fortran 77

2007-06-18 Thread dominiq at lps dot ens dot fr


--- Comment #5 from dominiq at lps dot ens dot fr  2007-06-18 15:38 ---
I did not make as many tests as Tobias, but it works for me on PPC with g77,
xlf, g95, and gfortran.


-- 


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



[Bug fortran/32391] Generate wrong optimization code on fortran 77

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #6 from sunjoong at gmail dot com  2007-06-18 16:07 ---
Thanks again, Tobias

$ uname -a
Linux newton 2.6.12-gentoo-r10 #1 Sun Sep 4 13:29:37 KST 2005 i686 Intel(R)
Pentium(R) 4 CPU 2.40GHz GenuineIntel GNU/Linux

$ gfortran -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.1.2
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/g++-v4
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
--enable-nls --without-included-gettext --with-system-zlib --disable-checking
--disable-werror --enable-secureplt --disable-libunwind-exceptions
--disable-multilib --enable-libmudflap --disable-libssp --disable-libgcj
--enable-languages=c,c++,fortran --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.1.2 (Gentoo 4.1.2)


I had tested it with this step;

$ gfortran -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
$ gfortran -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali

$ wget -O - http://ftp.g95.org/g95-x86-linux.tgz | tar xvfz -
$ export PATH=$PATH:./g95-install/bin
$ g95 -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
$ g95 -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali

$ emerge =sys-devel/gcc-4.2.0 # install
gcc-4.2.0 and gfortran
$ gcc-config i686-pc-linux-gnu-4.2.0
$ source /etc/profile
$ epm -e =sys-devel/gcc-4.1.2  # remove
gcc-4.1.2

$ gfortran -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
$ gfortran -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali

$ emerge =sys-devel/gcc-4.0.4 # install
gcc-4.0.4 and gfortran
$ gcc-config i686-pc-linux-gnu-4.0.4
$ source /etc/profile
$ epm -e =sys-devel/gcc-4.2.0  # remove
gcc-4.2.0

$ gfortran -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
$ gfortran -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali


After then, I loged in another machine;

$ uname -a
Linux gene.kias.re.kr 2.6.3-gene #3 SMP Wed Jan 19 00:10:01 KST 2005 i686
unknown unknown GNU/Linux

$ g77 -v
Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/specs
Configured with: ../configure --prefix=/usr --libdir=/usr/lib
--with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info
--enable-shared --enable-threads=posix --disable-checking --enable-long-long
--enable-__cxa_atexit --enable-clocale=gnu
--enable-languages=c,c++,ada,f77,objc,java,pascal
--host=i586-mandrake-linux-gnu --with-system-zlib
Thread model: posix
gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)

$ g77 -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
$ g77 -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali

$ pgf77 -O0 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali
$ pgf77 -O1 -o TMalign TMalign.f
$ ./TMalign 1aquA.pdb 1avaC.pdb | grep ^Ali


Which do you think the reson for this difference be for fortran compiler or c
compiler?

2007/6/19, Tobias Burnus [EMAIL PROTECTED]:
 As said: It works here with 4.1.3 20070521, 4.2.1 20070604 and 20070618,
 4.3.0 20070618. It also work with my g95, Intel Fortran and sunf95
 compilers. In all cases I get:
 
 Aligned length=  91, RMSD=  6.35, TM-score=0.24762, ID=0.024
 
 I'm on x86_64-unknown-linux-gnu (openSUSE Factory) and it works both in
 32 and 64 bit mode with no option, -O0, -O1, -O2, -O3, -O3 -ffast-math.
 
 
 What is your platform (CPU type and operating system) and what is your
 exact version of gfortran? (Both information is shown by gfortran -v.)
 (You are really only using -O1 and not any other flags, are you?)
 
 Tobias
 


-- 


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread burnus at gcc dot gnu dot org


--- Comment #5 from burnus at gcc dot gnu dot org  2007-06-18 16:15 ---
 Now I don't know how the compiler is supposed to behave when there is a 
 mismatch between the arguments in the subroutines and their call.

Well it is always said that it may do anything such as starting the third world
war; however, I think the program is only allowed to produce wrong results, to
overwrite/delete any file and to crash ;-)

NAG f95 fails to compile the program with the errors:

Error: g95Test01.f, line 86: Inconsistent datatype for arg 1 in call to MOVER
Error: g95Test01.f, line 152: Inconsistent datatype for arg 2 in call to SCOPU
Error: g95Test01.f, line 154: Inconsistent datatype for arg 1 in call to MOVER

For gfortran such a whole-file check is planned
(http://gcc.gnu.org/wiki/GFortran43).

Close as INVALID. If the problem also occurs with a valid Fortran program, feel
free to re-open this bug. (Please attach longer programs, if you include them
inline the report gets a bit messy.)


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug fortran/20441] -finit-local-zero is missing from gfortran

2007-06-18 Thread langton at gcc dot gnu dot org


-- 

langton at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |langton at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-12-18 01:54:45 |2007-06-18 16:23:28
   date||


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread burnus at gcc dot gnu dot org


--- Comment #7 from burnus at gcc dot gnu dot org  2007-06-18 16:38 ---
 $ gfortran -v
 Target: i686-pc-linux-gnu
 gcc version 4.1.2 (Gentoo 4.1.2)

I can reproduce this on my Pentium M (openSUSE 10.2) with
  Target: i586-suse-linux
  gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)
and with FX's
  Target: i386-pc-linux-gnu
  gcc version 4.3.0 20070618 (experimental)

Interestingly, it works on x86_64-unknown-linux-gnu even with -m32.
(I somehow fail to run FX's i386 compiler on x86-64.)

I think this could be a middle-end or target problem as it is that target
dependent. On the other hand, gfortran (and g95) could simply produce a wrong
generic code.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.1.2 4.3.0
   Last reconfirmed|-00-00 00:00:00 |2007-06-18 16:38:39
   date||
Summary|Generate wrong optimization |Wrong code with optimization
   |code on fortran 77  |on i686-pc-linux-gnu


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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-18 Thread zadeck at gcc dot gnu dot org


--- Comment #3 from zadeck at gcc dot gnu dot org  2007-06-18 16:47 ---
Subject: Bug 32355

Author: zadeck
Date: Mon Jun 18 16:47:05 2007
New Revision: 125812

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125812
Log:
2007-06-18  Kenneth Zadeck [EMAIL PROTECTED]

PR middle-end/32355
* gcse (rest_of_handle_gcse): Add call to df_finish_pass after
cse_main.
* df-problems.c (df_note_bb_compute): Fix dumping info.

2007-06-18  Kenneth Zadeck [EMAIL PROTECTED]

* gcc.c-torture/compile/pr32355.c: New testcase.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32355.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/df-problems.c
trunk/gcc/gcse.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-18 Thread zadeck at naturalbridge dot com


--- Comment #4 from zadeck at naturalbridge dot com  2007-06-18 16:48 
---
Subject: Re:  [4.3 Regression] ICE in df_lr_verify_transfer_functions,
 at df-problems.c:1924

committed as revision 125812

zadeck at naturalbridge dot com wrote:
 --- Comment #1 from zadeck at naturalbridge dot com  2007-06-17 20:13 
 ---
 Subject: Re:  [4.3 Regression] ICE in df_lr_verify_transfer_functions,
  at df-problems.c:1924

 There are possibly two problems here.  Fixing the first one fixes this ice.

 The first problem is that after a call to cse_main, a call to
 df_finish_pass is needed to get out of deferred rescanning mode and get
 everything up to date. 

 The possible second problem is that something in one of

 delete_trivially_dead_insns
 rebuild_jump_labels
 cleanup_cfg

 may not work in deferred rescanning mode.  This will wait for another
 bug report.
 It is too hard to debug this without first cleaning up what cse_main did
 and that makes the bug go away.

 ok to commit?

 Kenny

 2007-06-17  Kenneth Zadeck [EMAIL PROTECTED]

 PR middle-end/32355
 * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
 cse_main.
 * df-problems.c (df_note_bb_compute): Fix dumping info.

 2007-06-17  Kenneth Zadeck [EMAIL PROTECTED]

 * gcc.c-torture/compile/pr32355.c: New testcase.

 Index: testsuite/gcc.c-torture/compile/pr32355.c
 ===
 --- testsuite/gcc.c-torture/compile/pr32355.c   (revision 0)
 +++ testsuite/gcc.c-torture/compile/pr32355.c   (revision 0)
 @@ -0,0 +1,33 @@
 +/* { dg-options -O3 } */
 +
 +typedef struct
 +{
 +}
 +__sigset_t;
 +typedef struct
 +{
 +char coredump;
 +}
 +EMode;
 +extern EMode Mode;
 +struct sigaction
 +{
 +  __sigset_t sa_mask;
 +  int sa_flags;
 +};
 +doSignalsSetup (void)
 +{
 +  static const int signals[] = {
 +1, 2 , 3, 4, 6, 8, 11, 13, 14, 15, 10, 12, 17, 7
 +  };
 +  unsigned int i, sig;
 +  struct sigaction sa;
 +  for (i = 0; i  sizeof (signals) / sizeof (int); i++)
 +{
 +  sig = signals[i];
 +  if (Mode.coredump  (sig == 4 || sig == 8))
 +continue;
 +  sa.sa_flags = (sig == 17);
 +  sigemptyset (sa.sa_mask);
 +}
 +}
 Index: gcse.c
 ===
 --- gcse.c  (revision 125777)
 +++ gcse.c  (working copy)
 @@ -6704,6 +6704,7 @@ rest_of_handle_gcse (void)
  {
timevar_push (TV_CSE);
tem2 = cse_main (get_insns (), max_reg_num ());
 +  df_finish_pass ();
purge_all_dead_edges ();
delete_trivially_dead_insns (get_insns (), max_reg_num ());
timevar_pop (TV_CSE);
 Index: df-problems.c
 ===
 --- df-problems.c   (revision 125777)
 +++ df-problems.c   (working copy)
 @@ -3867,8 +3867,10 @@ df_note_bb_compute (unsigned int bb_inde
for (def_rec = df_get_artificial_defs (bb_index); *def_rec; def_rec++)
  {
struct df_ref *def = *def_rec;
 +#ifdef REG_DEAD_DEBUGGING
if (dump_file)
 fprintf (dump_file, artificial def %d\n, DF_REF_REGNO (def));
 +#endif

if ((DF_REF_FLAGS (def)  DF_REF_AT_TOP) == 0)
 bitmap_clear_bit (live, DF_REF_REGNO (def));


   


-- 


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



[Bug rtl-optimization/32355] [4.3 Regression] ICE in df_lr_verify_transfer_functions, at df-problems.c:1924

2007-06-18 Thread zadeck at naturalbridge dot com


--- Comment #5 from zadeck at naturalbridge dot com  2007-06-18 16:50 
---
fixed,revision 125812


-- 

zadeck at naturalbridge dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/32394] New: some operations to not work properly in df_deferred_rescan mode.

2007-06-18 Thread zadeck at naturalbridge dot com
At least one of these three calls do not work properly in deferred rescanning
mode.

 delete_trivially_dead_insns
 rebuild_jump_labels
 cleanup_cfg

The most likely cause of the failure is that we are not keeping enough
information around in the deferred scanning mode to properly track all of the
kinds of changes that these functions make.  Currently we only track, changed
insns, changed eq notes, and deleted insns.  

Basicblock renaming, creation and destruction is always done in real time. 
However it is likely that this gets out of sync with the deferred operations.  
With the resolution of pr32355, these calls are only made in regular mode.


-- 
   Summary: some operations to not work properly in
df_deferred_rescan mode.
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: bonzini at gnu dot org
ReportedBy: zadeck at naturalbridge dot com
  GCC host triplet: any


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



[Bug c++/32395] New: false positive warning about use of uninitialized variable.

2007-06-18 Thread pluto at agmk dot net
gcc-4.1 produces a warning for the following testcase.
(testcase uses headers from boost-1.34.0).

$ cat multi_index_test.cpp

#include boost/multi_index_container.hpp
#include boost/multi_index/ordered_index.hpp
#include boost/multi_index/identity.hpp
#include boost/multi_index/member.hpp
#include vector

using namespace boost;
using namespace boost::multi_index;

struct X
{
int value;
bool operator  ( X const e) const;
};

typedef multi_index_container

X,
indexed_by

ordered_unique identity X  ,
ordered_non_unique member X, int, X::value  

 C;

extern
C f( std::vector X  const v )
{
return C( v.begin(), v.end() );
}


$ x86_64-gnu-linux-g++ \
  -I/local/devel/buildenv41/x86_64-gnu-linux/boost-stdc++-1.34.0/include \
  multi_index_test.cpp -O1 -Wall --save-temps -c

/local/devel/buildenv41/x86_64-gnu-linux/boost-stdc++-1.34.0/include/boost/multi_index/ordered_index.hpp:
In member function 'std::pairtypename
boost::multi_index::detail::multi_index_base_typeValue, IndexSpecifierList,
Allocator::type::node_type*, bool
boost::multi_index::multi_index_containerValue, IndexSpecifierList,
Allocator::insert_(const Value, typename
boost::multi_index::detail::multi_index_base_typeValue, IndexSpecifierList,
Allocator::type::node_type*) [with Value = X, IndexSpecifierList =
boost::multi_index::indexed_byboost::multi_index::ordered_uniqueboost::multi_index::identityX,
mpl_::na, mpl_::na,
boost::multi_index::ordered_non_uniqueboost::multi_index::memberX, int,
X::value, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, Allocator =
std::allocatorX]':
/local/devel/buildenv41/x86_64-gnu-linux/boost-stdc++-1.34.0/include/boost/multi_index/ordered_index.hpp:566:
warning:
'inf.boost::multi_index::detail::ordered_indexboost::multi_index::identityX,
std::lessX, boost::multi_index::detail::nth_layer1, X,
boost::multi_index::indexed_byboost::multi_index::ordered_uniqueboost::multi_index::identityX,
mpl_::na, mpl_::na,
boost::multi_index::ordered_non_uniqueboost::multi_index::memberX, int,
X::value, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, std::allocatorX
, boost::mpl::vector0mpl_::na,
boost::multi_index::detail::ordered_unique_tag::link_info::side' may be used
uninitialized in this function

as far i can the warning comes from:

bool link_point(key_param_type k,link_info inf,ordered_unique_tag)
  {
(...)
else{
  inf.pos=yy-impl();  == partial initialziation of link_info.
  return false;
}
  }

in fact, all use cases of link_point use only inf.pos
when {hinted_,}link_point returns false.

(...)

  if(!link_point(key(v),inf,Category())){
  return node_type::from_impl(inf.pos);

(...)

  node_type* insert_(value_param_type v,node_type* position,node_type* x)
  {
link_info inf;
if(!hinted_link_point(key(v),position,inf,Category())){
  return node_type::from_impl(inf.pos);

(...)

gcc-3.4.5 and 4.2 works fine (no warning), but 4.1.2 fails.
4.0 and 4.3 wasn't tested.


-- 
   Summary: false positive warning about use of uninitialized
variable.
   Product: gcc
   Version: 4.1.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pluto at agmk dot net


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



[Bug c++/32395] false positive warning about use of uninitialized variable.

2007-06-18 Thread pluto at agmk dot net


--- Comment #1 from pluto at agmk dot net  2007-06-18 17:25 ---
Created an attachment (id=13730)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13730action=view)
testcase


-- 


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #8 from sunjoong at gmail dot com  2007-06-18 17:26 ---
I checked which part of TMalign.f make optimizaton wrong;
In DP subroutine,

  DO j=1,NSEQ2
DO i=1,NSEQ1
  D=VAL(i-1,j-1)+SCORE(i,j)
  H=VAL(i-1,j)
  if(DIR(i-1,j))H=H+GAP_OPEN
  V=VAL(i,j-1)
  if(DIR(i,j-1))V=V+GAP_OPEN

  IF((D.GE.H).AND.(D.GE.V)) THEN
DIR(I,J)=.true.
VAL(i,j)=D
  ELSE
DIR(I,J)=.false.
if(V.GE.H)then
  val(i,j)=v
else
  val(i,j)=h
end if
  ENDIF
ENDDO
  ENDDO


-- 


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-18 Thread daney at gcc dot gnu dot org


--- Comment #9 from daney at gcc dot gnu dot org  2007-06-18 17:36 ---
Subject: Bug 32313

Author: daney
Date: Mon Jun 18 17:36:42 2007
New Revision: 125818

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125818
Log:
PR target/32313
* config/mips/mips.c (mips_expand_call): Mark $gp as used by
local function call.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/mips/mips.c


-- 


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



[Bug tree-optimization/32390] tree-ssa-math-opts.c performs too many IL scans

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-06-18 17:40 ---
(In reply to comment #2)

 We need a better explanation than this.  Uros agreed to summarize the
 IRC discussion to close this issue.  It'd be useful if we keep that same
 discussion on the source code itself.

The need for separate IL passes could be explained by:

We have reciprocal pass (in fact CSE recip pass) that CSEs 1.0/z from x/z, y/z,
.../z. This is done by scanning function for RDIV_EXPR, where denominator (z)
is the same. If 1.0/func() - rfunc() conversion is done before recip pass, we
loose the ability to scan for RDIV_EXPRs and the ability to CSE the division.

By putting 1.0/func()-rfunc() after recip pass, we simply run another scan for
RDIV_EXPRs with function as their argument. Note that we already CSE'd
1.0/func(), so the conversion into rfunc() is trivial. This is the reason why
function recip pass needs to run after recip (aka CSE recip) pass.

Next convesion is sqrt(a/b) - rsqrt(b/a) conversion that runs after rfunc
recip pass as a separate pass (so, in the function granulartiy). If this pass
is run together or before rfunc pass, then rsqrt pass would convert expressions
like 1.0/sqrt(a/b) into 1.0/rsqrt(b/a). There is no point for rfunc pass (that
would follow) to convert this to sqrt(b/a).


-- 


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-18 Thread daney at gcc dot gnu dot org


--- Comment #10 from daney at gcc dot gnu dot org  2007-06-18 17:41 ---
The ability to bootstrap is fixed by the patch.  There are other dataflow
regressions that will be fixed by follow up patches.


-- 

daney at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dir at lanl dot gov


--- Comment #6 from dir at lanl dot gov  2007-06-18 18:13 ---
 Now I don't know how the compiler is supposed to behave when there is a 
 mismatch between the arguments in the subroutines and their call.

I do - since the beginning of FORTRAN, well, at least since FORTRAN 2, it
simply passes the starting address down for simple data types. I have worked
several commercial finite element codes over the years and at least half of
them call routines with wrong data type for various reasons - to do extremely
efficient low cost dynamic memory management, to create objects, to overload
modules, to do multiple inheritance, etc... Fortran 90 has not always been
around to do these things legally.


That is all not relevant anyway, if you would look at the output, you would
realize that the only this wrong is that the loop -

  do 242 i=1,nvg
  j2=jj+iprec*(i-1)
c+-+
c| multiply main diagonals by 2|
c+-+
  jt=t(j2)
  tt=tt+tt
  t(j2)=jt
  242 jj=jj+iprec*i

does not compile correctly - The program prints the data before and after the
loop. If you look at the assembly language output for that loop, it is
incorrect for O2. I make a quick try at pulling it out of the routine, but that
fail - so I just submitted the whole routine as I had already spent several
hours eliminated the other 100,000 lines of code. 




-- 


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #9 from sunjoong at gmail dot com  2007-06-18 18:31 ---
I cut the bellow and made a new subroutine,
then another part did not change on '-O0' and '-O1';

  D=VAL(i-1,j-1)+SCORE(i,j)
  H=VAL(i-1,j)
  if(DIR(i-1,j))H=H+GAP_OPEN
  V=VAL(i,j-1)
  if(DIR(i,j-1))V=V+GAP_OPEN

  IF((D.GE.H).AND.(D.GE.V)) THEN
DIR(I,J)=.true.
VAL(i,j)=D
  ELSE
DIR(I,J)=.false.
if(V.GE.H)then
  val(i,j)=v
else
  val(i,j)=h
end if
  ENDIF


-- 


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread kargl at gcc dot gnu dot org


--- Comment #10 from kargl at gcc dot gnu dot org  2007-06-18 18:36 ---
There are literal hundreds of warning given by ftnchek, and there
appears to be an array bounds problem.

troutmask:sgk[231] gfc4x -o z -O -fbounds-check TMalign.f
troutmask:sgk[232] ./z 1aquA.pdb 1avaC.pdb | grep RMSD
At line 2122 of file TMalign.f
Fortran runtime error: Array reference out of bounds for array 'w', upper bound
+of dimension 1 exceeded


-- 


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dominiq at lps dot ens dot fr


--- Comment #7 from dominiq at lps dot ens dot fr  2007-06-18 18:44 ---
 I do ...

I am not in the position to argue about what f90 compilers are supposed to do
with the original code. I just attach a modified one I hope is valid: g95 does
not complain and gives:

karma] f90/bug% bg95 pr32393_db.f
[karma] f90/bug% a.out
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
  iprec = 1
1

 lower triangular matrix with   3 rows

 row   10.1600E+02
 row   20.9000E+01  0.2000E+02
 row   30.1100E+02  0.1200E+02  0.2600E+02
[karma] f90/bug% bg95 -O3 pr32393_db.f
[karma] f90/bug% a.out
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
  iprec = 1
1

 lower triangular matrix with   3 rows

 row   10.1600E+02
 row   20.9000E+01  0.2000E+02
 row   30.1100E+02  0.1200E+02  0.2600E+02

as does xlf. On the other hand gfortran gives:

[karma] f90/bug% gfc pr32393_db.f
[karma] f90/bug% a.out
1

 lower triangular matrix with   3 rows

 row   10.8000E+01
 row   20.9000E+01  0.1000E+02
 row   30.1100E+02  0.1200E+02  0.1300E+02
  iprec =   1
1

 lower triangular matrix with   3 rows

 row   10.1600E+02
 row   20.9000E+01  0.2000E+02
 row   30.1100E+02  0.1200E+02  0.2600E+02
[karma] f90/bug% gfc -O3 pr32393_db.f
[karma] f90/bug% a.out
1

 lower triangular matrix with   3 rows

 row   10.E+00
 row   20.1000E+01  0.2000E+01
 row   30.3000E+01  0.4000E+01  0.5000E+01
  iprec =   1
1

 lower triangular matrix with   3 rows

 row   10.E+00
 row   20.1000E+01  0.4000E+01
 row   30.3000E+01  0.4000E+01  0.1000E+02

So if the attached code is deemed valid there is indeed a bug in gfortran.


-- 


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread dominiq at lps dot ens dot fr


--- Comment #8 from dominiq at lps dot ens dot fr  2007-06-18 18:46 ---
Created an attachment (id=13731)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13731action=view)
valid test case(?)

I have removed the dummy subroutines and type mismatch.


-- 


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #11 from sunjoong at gmail dot com  2007-06-18 18:47 ---
Yes, I agree that program is not beautiful
and I know the the array 'w' of 'u3b' subroutine problem;
I think the author of u3b use w(1) as pointer.

However,
the wrong generation of optimized code occurs in 'DP' subroutine.
The array of DP have fixed boundary.

(In reply to comment #10)
 There are literal hundreds of warning given by ftnchek, and there
 appears to be an array bounds problem.
 
 troutmask:sgk[231] gfc4x -o z -O -fbounds-check TMalign.f
 troutmask:sgk[232] ./z 1aquA.pdb 1avaC.pdb | grep RMSD
 At line 2122 of file TMalign.f
 Fortran runtime error: Array reference out of bounds for array 'w', upper 
 bound
 +of dimension 1 exceeded
 


-- 


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



[Bug fortran/20373] INTRINSIC symbols can be given the wrong type

2007-06-18 Thread dfranke at gcc dot gnu dot org


--- Comment #14 from dfranke at gcc dot gnu dot org  2007-06-18 19:02 
---
Updated patch.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2007-
   ||06/msg01263.html


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread kargl at gcc dot gnu dot org


--- Comment #12 from kargl at gcc dot gnu dot org  2007-06-18 19:16 ---
(In reply to comment #11)
 Yes, I agree that program is not beautiful
 and I know the the array 'w' of 'u3b' subroutine problem;
 I think the author of u3b use w(1) as pointer.

Change the 1 to *.

 However,
 the wrong generation of optimized code occurs in 'DP' subroutine.
 The array of DP have fixed boundary.

Do you get wrong results if you add the -ffloat-store option?
Can you also try the -fdefault-real-8 option?


-- 


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-18 Thread daney at gcc dot gnu dot org


--- Comment #11 from daney at gcc dot gnu dot org  2007-06-18 19:35 ---
Subject: Bug 32313

Author: daney
Date: Mon Jun 18 19:35:05 2007
New Revision: 125824

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125824
Log:
Revert:

2007-06-18  David Daney  [EMAIL PROTECTED]

PR target/32313
* config/mips/mips.c (mips_expand_call): Mark $gp as used by
local function call.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/mips/mips.c


-- 


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-18 Thread daney at gcc dot gnu dot org


--- Comment #12 from daney at gcc dot gnu dot org  2007-06-18 19:35 ---
That fix was incorrect.  Sorry.


-- 

daney at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug target/32313] [4.3 Regression] Bootstrap failure running gengtype in stage 2.

2007-06-18 Thread daney at gcc dot gnu dot org


--- Comment #13 from daney at gcc dot gnu dot org  2007-06-18 19:39 ---
This is the same problem as:

http://gcc.gnu.org/ml/gcc-patches/2007-06/msg01165.html

I am currently bootstrapping the patch in that e-mail thread and will probably
commit that version.


-- 


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



[Bug rtl-optimization/32339] [4.3 Regression] ICE in insert_save, at caller-save.c:726

2007-06-18 Thread spark at gcc dot gnu dot org


--- Comment #7 from spark at gcc dot gnu dot org  2007-06-18 20:02 ---
Subject: Bug 32339

Author: spark
Date: Mon Jun 18 20:02:33 2007
New Revision: 125825

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125825
Log:
gcc/ChangeLog:

2007-06-18  Seongbae Park  [EMAIL PROTECTED]

PR rtl-optimization/32339
* df-scan.c (df_uses_record): Don't modify flags but just add to
it for df_ref_record.

gcc/testsuite/ChangeLog:

2007-06-18  Martin Michlmayr [EMAIL PROTECTED]

PR rtl-optimization/32339
* gcc.c-torture/compile/pr32339.c: New test.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32339.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread sunjoong at gmail dot com


--- Comment #13 from sunjoong at gmail dot com  2007-06-18 20:24 ---
The '-ffloat-store' option works! Thank you.

However that gave me some quenstions;

Is that feature or bug?

There is many floating point operations of course.
Why the only one specific resion make problem?

That is not set when optimize.
So, what's the disadvantage and
why the 'fortran' with many floating point operation
dosn't take it when optimize?

Why x86 need that option but x86_64 or PPC do not need?

(In reply to comment #12)
 Do you get wrong results if you add the -ffloat-store option?
 Can you also try the -fdefault-real-8 option?


-- 


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



Size of C/C++ data type from GNU GCC/g++ compiled ELF 64-bit LSB executable, AMD x86-64 vs. ELF 32-bit LSB executable, Intel 80386

2007-06-18 Thread tom peng

Hi, 

I need experts to shed light on C/C++ data type size inconsistencies when
running 64-bit and 32-bit ELF executables compiled by GNU/GCC g++/gcc

Following are results of C/C++ data type size from code  cout  data
type  sizeof(data type)  endl  :

 | 32-bit | 64-bit
---
int |4 |4
---
long int   |4 |8
---
signed long int  |4 |4
---
ulong  |4 |8  (sys/types.h)
---
long double  |12   |16

Thank in advance,

Tom


-- 
View this message in context: 
http://www.nabble.com/Size-of-C-C%2B%2B-data-type-from-GNU-GCC-g%2B%2B-compiled-ELF-64-bit-LSB-executable%2C-AMD-x86-64-vs.-ELF-32-bit-LSB-executable%2C-Intel-80386-tf3942710.html#a11183699
Sent from the gcc - bugs mailing list archive at Nabble.com.



[Bug fortran/32391] Wrong code with optimization on i686-pc-linux-gnu

2007-06-18 Thread kargl at gcc dot gnu dot org


--- Comment #14 from kargl at gcc dot gnu dot org  2007-06-18 20:47 ---
(In reply to comment #13)
 The '-ffloat-store' option works! Thank you.
 
 However that gave me some quenstions;
 
 Is that feature or bug?

It is a 'feature' of the i386 class of cpu.  See PR 323 for 
details.

 There is many floating point operations of course.
 Why the only one specific resion make problem?

The floating point operations are done with 80-bit 
precision and the intermediate results that are left
in a register have the extra precision.  Double precision
has 53 bits of precision and single precision has 24
bits.  The mixed mode arithmetic that ftnchek warns
about can cause the type of problem you are seeing.
The -ffloat-store option forces the contents in a register
after a floating pointing operation to be written to main
memory and then re-read.  This removes the extra precision.


 That is not set when optimize.
 So, what's the disadvantage and
 why the 'fortran' with many floating point operation
 dosn't take it when optimize?

You'll need to review the code.  I'd suggest first eliminating
the warns produced by ftnchek.  If the problems disappear, then
be happy.  If the problems are still present, you'll need to 
review the floating point operations in the code.


 Why x86 need that option but x86_64 or PPC do not need?

These cpus do not store intermediate results in 80-bit register.


-- 


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



[Bug middle-end/32321] [4.3 Regression] ICE in df_refs_verify with -fgcse-sm

2007-06-18 Thread spark at gcc dot gnu dot org


--- Comment #3 from spark at gcc dot gnu dot org  2007-06-18 20:49 ---
Subject: Bug 32321

Author: spark
Date: Mon Jun 18 20:49:23 2007
New Revision: 125827

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125827
Log:
2007-06-18  Seongbae Park  [EMAIL PROTECTED]

PR rtl-optimization/32321
* gcse.c (replace_store_insn): Update the note before
calling emit_insn_after.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcse.c


-- 


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



[Bug middle-end/32396] New: [PPC/Altivec, regression?] gcc uses 0 as altivec load/store index

2007-06-18 Thread sparky at pld-linux dot org
In altivec load/store instructions (lvx, stvx, ...) and lsvl/lsvr, when address
is supplied as pointer + well-known constant, gcc always calculates the actual
address in scalar unit and does not use sum in those instructions (puts 0 as
index). This slows-down some simple altivec loops.

Sample code:
vector unsigned char *vDst = dst;
vector unsigned char vSetTo = {}; /* zero */

do {
vec_st( vSetTo,  0, vDst );
vec_st( vSetTo, 16, vDst );
vDst += 2;
} while (--len);

gcc 4.1.2, 4.2.0, 4.3-20070615 produces:

.L3:
addi %r11,%r9,16
stvx %v0,0,%r9
addi %r9,%r9,32
stvx %v0,0,%r11
bdnz .L3

while, ideally, it should be:
li %r11,16
.L3:
stvx %v0,0,%r9
stvx %v0,%r11,%r9
addi %r9,%r9,32
bdnz .L3

gcc 3.3, with -O2, behaves quite well in this case (should use 0 instead of
r10):
li %r10,0
li %r11,16
.L13:
stvx %v0,%r10,%r9
stvx %v0,%r11,%r9
addi %r9,%r9,32
bdnz .L13


-- 
   Summary: [PPC/Altivec, regression?] gcc uses 0 as altivec
load/store index
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sparky at pld-linux dot org


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



[Bug fortran/32393] gfortran - incorrect run time results

2007-06-18 Thread burnus at gcc dot gnu dot org


--- Comment #9 from burnus at gcc dot gnu dot org  2007-06-18 21:04 ---
 valid test case(?)
 I have removed the dummy subroutines and type mismatch.
Still not fully valid as NAG f95 complains
Error: yyy.f: Argument IVG (no. 2) in reference to VR2 from MAIN is not an
array
[...]
However, ignoring this issue (-dusty), NAG f95 shows another issue:
Subscript 1 of A (value 2) is out of range (1:1) in PRMX, line 191
(gfortran -fbounds-check finds it also.)

Otherwise on x86_64-unknown-linux-gnu I get the same result with all my
compilers.


-- 


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



[Bug middle-end/32396] [PPC/Altivec, regression?] gcc uses 0 as altivec load/store index

2007-06-18 Thread sparky at pld-linux dot org


--- Comment #1 from sparky at pld-linux dot org  2007-06-18 21:11 ---
Created an attachment (id=13732)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13732action=view)
simple testcase and benchmark

on 1.3GHz iBook built without USE_ASM runs in 2.335s, with USE_ASM runs in
1.815s


-- 


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



[Bug c/31331] ICE on invalid function attribute syntax for main()

2007-06-18 Thread eweddington at cso dot atmel dot com


--- Comment #2 from eweddington at cso dot atmel dot com  2007-06-18 22:00 
---
Created an attachment (id=13733)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13733action=view)
Patch to fix bug, written by Anatoly Sokolov


-- 


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



[Bug c/31331] ICE on invalid function attribute syntax for main()

2007-06-18 Thread eweddington at cso dot atmel dot com


--- Comment #3 from eweddington at cso dot atmel dot com  2007-06-18 22:01 
---
The attached patch, written by Anatoly Sokolov, fixes the bug.


-- 

eweddington at cso dot atmel dot com changed:

   What|Removed |Added

 CC||aesok at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-06-18 22:01:43
   date||


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



[Bug c++/31923] g++ accepts a storage-class-specifier on a template explicit specialization

2007-06-18 Thread simonb at gcc dot gnu dot org


--- Comment #3 from simonb at gcc dot gnu dot org  2007-06-18 22:09 ---
Subject: Bug 31923

Author: simonb
Date: Mon Jun 18 22:09:14 2007
New Revision: 125829

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125829
Log:
gcc/cp/ChangeLog
2007-06-15  Simon Baldwin [EMAIL PROTECTED]

PR c++/31923
* parser.c (cp_parser_single_declaration): Added check for storage
class other than sc_none in parsed declaration, and a flag to indicate
if the call is part of an explicit template specialization parse.
* (cp_parser_explicit_specialization): Specialization check flag added
to call to cp_parser_single_declaration(), set true.
* (cp_parser_template_declaration_after_export): Specialization check
flag added to call to cp_parser_single_declaration(), set false.
* pt.c (check_explicit_specialization): Added code to copy visiblity
and linkage from the templated function to the explicit specialization.

gcc/testsuite/ChangeLog
2007-06-15  Simon Baldwin [EMAIL PROTECTED]

PR c++/31923
* g++.dg/template/error25.C: New.
* g++.dg/template/spec35.C: New.


Added:
trunk/gcc/testsuite/g++.dg/template/error25.C
trunk/gcc/testsuite/g++.dg/template/spec35.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/32389] [4.1/4.2/4.3 Regression] ICE in extract_constrain_insn_cached when using -msse

2007-06-18 Thread uros at gcc dot gnu dot org


--- Comment #2 from uros at gcc dot gnu dot org  2007-06-18 22:33 ---
Subject: Bug 32389

Author: uros
Date: Mon Jun 18 22:32:56 2007
New Revision: 125830

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125830
Log:
PR target/32389
* config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
* config/i386/i386.c (assign_386_stack_local): Assert that
SLOT_VIRTUAL is valid only before virtual regs are instantiated.
(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
* config/i386/i386.md (truncdfsf2, truncxfmode2): Ditto.

testsuite/ChangeLog:

PR target/32389
* gcc.target/i386/pr32389.c New test.


Added:
trunk/gcc/testsuite/gcc.target/i386/pr32389.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.h
trunk/gcc/config/i386/i386.md
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/32389] [4.1/4.2 Regression] ICE in extract_constrain_insn_cached when using -msse

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-06-18 22:35 ---
Fixed in mainline.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2007-
   ||06/msg01281.html
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||patch
  Known to fail|4.1.2 4.2.0 4.3.0   |4.1.2 4.2.0
  Known to work|3.4.6 4.0.4 |3.4.6 4.0.4 4.3.0
   Last reconfirmed|-00-00 00:00:00 |2007-06-18 22:35:45
   date||
Summary|[4.1/4.2/4.3 Regression] ICE|[4.1/4.2 Regression] ICE in
   |in  |extract_constrain_insn_cache
   |extract_constrain_insn_cache|d when using -msse
   |d when using -msse  |


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



[Bug rtl-optimization/32374] [4.3 Regression] internal compiler error: in reload_cse_simplify_operands, at postreload.c:396

2007-06-18 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-06-18 22:36 ---
(In reply to comment #3)
 I don't know if this is data flow related any more, due to the reporting of PR
 32389.

No, this one is caused by dataflow.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

  BugsThisDependsOn|32389   |


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



[Bug fortran/32386] Pure function not allowed in specification expression

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-06-18 22:49 ---
John,

5.1
.many snips.
If a specification-expr involves a reference to a specification function
(7.1.6.2), the expression is considered to be a nonconstant expression. If the
data object being declared depends on the value of such a nonconstant
expression and is not a dummy argument, such an object is called an automatic
data object.

I can see why you should think that this is OK.  However, this section of the
standard says otherwise.  In fact, there is a practical consideration, which
probably drives the standard:

This character length cannot be computed at compilation time because the
specification function is needed.  Automatic objects in procedures have their
variable properties calculated in the interface, which is not available for the
main program. Thus, even were this legal code, I would not have the slightest
idea how to implement it.

My vote is that this is invalid.

Paul


-- 


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



[Bug target/20082] unrecognizable insn

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-06-18 23:04 ---
Subject: Bug 20082

Author: pault
Date: Mon Jun 18 23:04:28 2007
New Revision: 125831

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125831
Log:
2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20863
PR fortran/20082
* resolve.c (resolve_code): Use gfc_impure_variable as a
condition for rejecting derived types with pointers, in pure
procedures.
(gfc_impure_variable): Add test for dummy arguments of pure
procedures; any for functions and INTENT_IN for subroutines.

PR fortran/32236
* data.c (gfc_assign_data_value): Change the ICE on an array
reference initializer not being an array into an error and
clear init to prevent a repetition of the error.

2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20863
PR fortran/20082
* gfortran.dg/impure_assignment_2.f90 : New test.

PR fortran/32236
* gfortran.dg/data_initialized_2.f90 : New test.

* gfortran.dg/equiv_7.f90 : Test for endianess and call the
appropriate version of 'dmach'.

Added:
trunk/gcc/testsuite/gfortran.dg/data_initialized_2.f90
trunk/gcc/testsuite/gfortran.dg/impure_assignment_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/data.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/equiv_7.f90


-- 


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



[Bug fortran/20863] Pointer problems in PURE procedures

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-06-18 23:04 ---
Subject: Bug 20863

Author: pault
Date: Mon Jun 18 23:04:28 2007
New Revision: 125831

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125831
Log:
2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20863
PR fortran/20082
* resolve.c (resolve_code): Use gfc_impure_variable as a
condition for rejecting derived types with pointers, in pure
procedures.
(gfc_impure_variable): Add test for dummy arguments of pure
procedures; any for functions and INTENT_IN for subroutines.

PR fortran/32236
* data.c (gfc_assign_data_value): Change the ICE on an array
reference initializer not being an array into an error and
clear init to prevent a repetition of the error.

2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20863
PR fortran/20082
* gfortran.dg/impure_assignment_2.f90 : New test.

PR fortran/32236
* gfortran.dg/data_initialized_2.f90 : New test.

* gfortran.dg/equiv_7.f90 : Test for endianess and call the
appropriate version of 'dmach'.

Added:
trunk/gcc/testsuite/gfortran.dg/data_initialized_2.f90
trunk/gcc/testsuite/gfortran.dg/impure_assignment_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/data.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/equiv_7.f90


-- 


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



[Bug fortran/32236] internal compiler error: in gfc_assign_data_value, at fortran/data.c:288

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-06-18 23:04 ---
Subject: Bug 32236

Author: pault
Date: Mon Jun 18 23:04:28 2007
New Revision: 125831

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125831
Log:
2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20863
PR fortran/20082
* resolve.c (resolve_code): Use gfc_impure_variable as a
condition for rejecting derived types with pointers, in pure
procedures.
(gfc_impure_variable): Add test for dummy arguments of pure
procedures; any for functions and INTENT_IN for subroutines.

PR fortran/32236
* data.c (gfc_assign_data_value): Change the ICE on an array
reference initializer not being an array into an error and
clear init to prevent a repetition of the error.

2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20863
PR fortran/20082
* gfortran.dg/impure_assignment_2.f90 : New test.

PR fortran/32236
* gfortran.dg/data_initialized_2.f90 : New test.

* gfortran.dg/equiv_7.f90 : Test for endianess and call the
appropriate version of 'dmach'.

Added:
trunk/gcc/testsuite/gfortran.dg/data_initialized_2.f90
trunk/gcc/testsuite/gfortran.dg/impure_assignment_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/data.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/equiv_7.f90


-- 


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



[Bug fortran/20882] PURE procedure containing pointer assignment to dummy with pointer component

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-06-18 23:07 ---
Subject: Bug 20882

Author: pault
Date: Mon Jun 18 23:07:32 2007
New Revision: 125832

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125832
Log:
2007-06-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20882
Correct the PR number from 20082 to 20882.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/20863] Pointer problems in PURE procedures

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-06-18 23:08 ---
Fixed on trunk

Paul


-- 


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



[Bug fortran/20882] PURE procedure containing pointer assignment to dummy with pointer component

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-06-18 23:09 ---
Fixed on trunk

Paul


-- 


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



[Bug fortran/32236] internal compiler error: in gfc_assign_data_value, at fortran/data.c:288

2007-06-18 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-06-18 23:10 ---
Fixed on trunk

Paul


-- 


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



Wrong PR listed in your recent ChangeLog

2007-06-18 Thread Eric Weddington
Hi Paul,

In your recent checkin:
http://gcc.gnu.org/viewcvs?view=revrevision=125831
You list PR fortran/20082 as one of the bugs fixed.

PR 20082 is a target bug for the AVR target and was resolved as invalid. So
it looks like you have the wrong PR number in your ChangeLog.

Thanks,
Eric Weddington




[Bug c/32397] New: wrong instruction order generated

2007-06-18 Thread rosenfeld at grumpf dot hope-2000 dot org
this C code line 
{(((Cyg_libm_ieee_double_shape_type *)x)-parts.msw) =
(hx0x800f)|(k20); return x;}
causes this assembler code to be generated:

bic r3, ip, #2130706432
bic r3, r3, #15728640
ldmia   sp, {r0-r1}
orr r3, r3, r2, asl #20
str r3, [r5, #0]
b   .L6

The ldmia instruction loads the value to be returned from memory before the
calculation is finished and the result is stored there. Rearranging the
instructions by hand in the resulting binary makes the program work.

gcc output:
Using built-in specs.
Target: arm-elf
Configured with: /usr/local/src/gcc-4.2.0/configure --target=arm-elf
--prefix=/usr/local --with-gnu-as --with-gnu-ld --disable-hosted-libstdcxx
--disable-__cxa_atexit --enable-languages=c,c++
Thread model: single
gcc version 4.2.0
 /usr/local/libexec/gcc/arm-elf/4.2.0/cc1 -E -quiet -v
-I/tmp/ecos/whz2292_install/include
-I/usr/local/share/ecos/packages/language/c/libm/current
-I/usr/local/share/ecos/packages/language/c/libm/current/src
-I/usr/local/share/ecos/packages/language/c/libm/current/tests -I.
-I/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/
-D__USES_INITFINI__ -MD src/double/portable-api/s_scalbn.tmp
/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
-mcpu=arm7tdmi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef
-finline-limit=7000 -ffunction-sections -fdata-sections -fno-exceptions
-fworking-directory -O2 -fpch-preprocess -o s_scalbn.i
ignoring nonexistent directory
/usr/local/lib/gcc/arm-elf/4.2.0/../../../../arm-elf/sys-include
#include ... search starts here:
#include ... search starts here:
 /tmp/ecos/whz2292_install/include
 /usr/local/share/ecos/packages/language/c/libm/current
 /usr/local/share/ecos/packages/language/c/libm/current/src
 /usr/local/share/ecos/packages/language/c/libm/current/tests
 .

/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/
 /usr/local/lib/gcc/arm-elf/4.2.0/include
 /usr/local/lib/gcc/arm-elf/4.2.0/../../../../arm-elf/include
End of search list.
 /usr/local/libexec/gcc/arm-elf/4.2.0/cc1 -fpreprocessed s_scalbn.i -quiet
-dumpbase s_scalbn.c -mcpu=arm7tdmi -auxbase-strip
src/double/portable-api/language_c_libm_s_scalbn.o -g -O2 -Wall -Wpointer-arith
-Wstrict-prototypes -Winline -Wundef -version -finline-limit=7000
-ffunction-sections -fdata-sections -fno-exceptions -o s_scalbn.s
GNU C version 4.2.0 (arm-elf)
compiled by GNU C version 4.1.2 20061021 prerelease (NetBSD nb3
20061125).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=65415
Compiler executable checksum: f21aa8a15d6feeb6af69912bd33e6003
 /usr/local/lib/gcc/arm-elf/4.2.0/../../../../arm-elf/bin/as -mcpu=arm7tdmi -o
src/double/portable-api/language_c_libm_s_scalbn.o s_scalbn.s

source file:
# 1
/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
# 1 /tmp/ecos/whz2292_build/language/c/libm/current//
# 1 built-in
# 1 command-line
# 1
/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
# 56
/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
# 1 /tmp/ecos/whz2292_install/include/pkgconf/libm.h 1
# 12 /tmp/ecos/whz2292_install/include/pkgconf/libm.h
# 1 /tmp/ecos/whz2292_install/include/pkgconf/system.h 1
# 13 /tmp/ecos/whz2292_install/include/pkgconf/libm.h 2
typedef enum {
CYGNUM_LIBM_COMPAT_UNINIT= 0,
CYGNUM_LIBM_COMPAT_POSIX = 1,
CYGNUM_LIBM_COMPAT_IEEE = 2,
CYGNUM_LIBM_COMPAT_XOPEN = 3,

CYGNUM_LIBM_COMPAT_SVID = 4

} Cyg_libm_compat_t;
# 57
/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
2
# 83
/usr/local/share/ecos/packages/language/c/libm/current/src/double/portable-api/s_scalbn.c
# 1
/usr/local/share/ecos/packages/language/c/libm/current/src/mathincl/fdlibm.h
1
# 66
/usr/local/share/ecos/packages/language/c/libm/current/src/mathincl/fdlibm.h
# 1 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h 1
# 58 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h
# 1 /tmp/ecos/whz2292_install/include/stddef.h 1
# 64 /tmp/ecos/whz2292_install/include/stddef.h
# 1 /usr/local/lib/gcc/arm-elf/4.2.0/include/stddef.h 1 3 4
# 152 /usr/local/lib/gcc/arm-elf/4.2.0/include/stddef.h 3 4
typedef long int ptrdiff_t;
# 214 /usr/local/lib/gcc/arm-elf/4.2.0/include/stddef.h 3 4
typedef long unsigned int size_t;
# 326 /usr/local/lib/gcc/arm-elf/4.2.0/include/stddef.h 3 4
typedef int wchar_t;
# 65 /tmp/ecos/whz2292_install/include/stddef.h 2
# 59 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h 2
# 83 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h
# 1 /tmp/ecos/whz2292_install/include/cyg/hal/basetype.h 1
# 84 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h 2
# 160 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h
typedef int bool;
# 202 /tmp/ecos/whz2292_install/include/cyg/infra/cyg_type.h
typedef unsigned char cyg_uint8 ;
typedef signed char 

[Bug fortran/32386] Pure function not allowed in specification expression

2007-06-18 Thread John dot Harper at mcs dot vuw dot ac dot nz


--- Comment #8 from John dot Harper at mcs dot vuw dot ac dot nz  
2007-06-19 01:13 ---
Subject: Re:  Pure function not allowed in specification
 expression

On Tue, 18 Jun 2007, pault at gcc dot gnu dot org wrote:

 Date: 18 Jun 2007 22:49:37 -
 From: pault at gcc dot gnu dot org [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Subject: [Bug fortran/32386] Pure function not allowed in specification
 expression
 


 --- Comment #7 from pault at gcc dot gnu dot org  2007-06-18 22:49 ---
 John,

 5.1
 .many snips.
 If a specification-expr involves a reference to a specification function
 (7.1.6.2), the expression is considered to be a nonconstant expression. If the
 data object being declared depends on the value of such a nonconstant
 expression and is not a dummy argument, such an object is called an automatic
 data object.

 I can see why you should think that this is OK.  However, this section of the
 standard says otherwise.  In fact, there is a practical consideration, which
 probably drives the standard:

 This character length cannot be computed at compilation time because the
 specification function is needed.  Automatic objects in procedures have their
 variable properties calculated in the interface, which is not available for 
 the
 main program. Thus, even were this legal code, I would not have the slightest
 idea how to implement it.

 My vote is that this is invalid.

I now agree the code was invalid - I had found 7.1.6.2 but overlooked 
5.1 before sending the bug report. You may be amused to know that some 
compilers do implement that type of automatic data object: g95 and Sun 
f95. However Compaq f95 and NAG f95 disallow it. I don't think a bug
report to g95 or Sun is warranted though: the part of 5.1 that the
program violates is not in a Constraint.

-- John Harper, School of Mathematics, Statistics and Computer Science,
Victoria University, PO Box 600, Wellington 6140, New Zealand
e-mail [EMAIL PROTECTED] phone (+64)(4)463 5341 fax (+64)(4)463 5045


-- 


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



[Bug regression/32398] New: checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-06-18 Thread danglin at gcc dot gnu dot org
checking for hppa64-hp-hpux11.11-gcc... /test/gnu/gcc/objdir/./gcc/xgcc
-B/test/
gnu/gcc/objdir/./gcc/ -B/opt/gnu64/gcc/gcc-4.3.0/hppa64-hp-hpux11.11/bin/
-B/opt
/gnu64/gcc/gcc-4.3.0/hppa64-hp-hpux11.11/lib/ -isystem
/opt/gnu64/gcc/gcc-4.3.0/
hppa64-hp-hpux11.11/include -isystem
/opt/gnu64/gcc/gcc-4.3.0/hppa64-hp-hpux11.1
1/sys-include
checking for suffix of object files... configure: error: cannot compute suffix
o
f object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage2-target-libgcc] Error 1
make[2]: Leaving directory `/test/gnu/gcc/objdir'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/test/gnu/gcc/objdir'
make: *** [bootstrap] Error 2
Mon Jun 18 21:08:30 EDT 2007


-- 
   Summary: checking for suffix of object files... configure: error:
cannot compute suffix of f object files: cannot compile
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


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



[Bug regression/32398] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-06-18 Thread danglin at gcc dot gnu dot org


--- Comment #1 from danglin at gcc dot gnu dot org  2007-06-19 02:39 ---
This appears to be another problem in handling return pointer:

0x403e5644 lshift_significand+148:extrd,u ret0,63,32,rp


-- 


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



[Bug fortran/32386] Pure function not allowed in specification expression

2007-06-18 Thread kargl at gcc dot gnu dot org


--- Comment #9 from kargl at gcc dot gnu dot org  2007-06-19 03:50 ---
John,

With your acknowledgment of pault's comment, I think this
can be closed.  Thanks for the reports.  These types of
potential corner cases keep us on our toes.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug rtl-optimization/32339] [4.3 Regression] ICE in insert_save, at caller-save.c:726

2007-06-18 Thread spark at gcc dot gnu dot org


--- Comment #8 from spark at gcc dot gnu dot org  2007-06-19 04:30 ---
(In reply to comment #7)
 Subject: Bug 32339
 
 Author: spark
 Date: Mon Jun 18 20:02:33 2007
 New Revision: 125825
 
 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=125825
 Log:
 gcc/ChangeLog:
 
 2007-06-18  Seongbae Park  [EMAIL PROTECTED]
 
 PR rtl-optimization/32339
 * df-scan.c (df_uses_record): Don't modify flags but just add to
 it for df_ref_record.
 
 gcc/testsuite/ChangeLog:
 
 2007-06-18  Martin Michlmayr [EMAIL PROTECTED]
 
 PR rtl-optimization/32339
 * gcc.c-torture/compile/pr32339.c: New test.
 
 
 Added:
 trunk/gcc/testsuite/gcc.c-torture/compile/pr32339.c
 Modified:
 trunk/gcc/ChangeLog
 trunk/gcc/gcse.c
 trunk/gcc/testsuite/ChangeLog

Please ignore this commit - this patch is for another bug fix,
although the testcase is the correct one.
I'll commit the testcase in a separate patch.
Sorry for the confusion.
Anyway, since this bug has been fixed by my earlier commit,
I'm marking it as fixed.


-- 

spark at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/32321] [4.3 Regression] ICE in df_refs_verify with -fgcse-sm

2007-06-18 Thread spark at gcc dot gnu dot org


--- Comment #4 from spark at gcc dot gnu dot org  2007-06-19 04:38 ---
Fixed.


-- 

spark at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



  1   2   >