--- Comment #13 from tkoenig at gcc dot gnu dot org 2010-08-27 12:12
---
Fixed on trunk.
Closing.
--
tkoenig at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #12 from tkoenig at gcc dot gnu dot org 2010-08-09 19:35
---
Subject: Bug 44235
Author: tkoenig
Date: Mon Aug 9 19:34:49 2010
New Revision: 163041
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=163041
Log:
2010-08-09 Thomas Koenig
PR fortran/44235
--- Comment #11 from tkoenig at gcc dot gnu dot org 2010-08-08 22:40
---
(In reply to comment #10)
> > This patch seems to work, and do more or less the right thing.
>
> No counter-example of that!-) thanks.
That's good.
> > It inserts the upper bound only for strides not equal to on
--- Comment #10 from dominiq at lps dot ens dot fr 2010-08-08 20:08 ---
> This patch seems to work, and do more or less the right thing.
No counter-example of that!-) thanks.
> It inserts the upper bound only for strides not equal to one.
I am unable to follow the code. Do you mean th
--- Comment #9 from tkoenig at gcc dot gnu dot org 2010-08-08 16:08 ---
Created an attachment (id=21437)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21437&action=view)
Proposed patch
This patch seems to work, and do more or less the right thing.
It inserts the upper bound only f
--- Comment #8 from dominiq at lps dot ens dot fr 2010-08-07 13:40 ---
> the only unnecessary temporary still created with current trunk is your first
> example.
Again it is because the lower bound of the section is that or the array, but if
increase it I see
pr44235_1_db.f90:22.14:
--- Comment #7 from tkoenig at gcc dot gnu dot org 2010-08-07 11:17 ---
(In reply to comment #6)
Hi Dominique,
> It turns out that the test in comment #0 was not fixed by the patch in comment
> #5, but by revision 162966. However with the slight change
>
> a(4:23:3) = a(4:22:3)
>
>
--- Comment #6 from dominiq at lps dot ens dot fr 2010-08-07 09:01 ---
It turns out that the test in comment #0 was not fixed by the patch in comment
#5, but by revision 162966. However with the slight change
a(4:23:3) = a(4:22:3)
a temporary is still created. The patch in comment #5
--- Comment #5 from dominiq at lps dot ens dot fr 2010-08-06 22:49 ---
Note that the following patch I have in my tree for some time now also fix the
pr
--- gcc/fortran/dependency.c2010-08-07 00:37:34.0 +0200
+++ ../work/gcc/fortran/dependency.c2010-08-05 19:11:58.0
--- Comment #4 from dominiq at lps dot ens dot fr 2010-08-06 21:34 ---
I am not to sure about the patch in comment #2 because the case should probably
be handled by gfc_is_same_range and the patch does it in
gfc_check_section_vs_section. Note that gfc_is_same_range has a line
/* TODO:
--- Comment #3 from steven at gcc dot gnu dot org 2010-08-06 21:24 ---
What's the plan with the patch of comment #2?
NB, the result of gfc_dep_compare_expr (l_start, r_start) could be cached
instead of computed twice:
+ && ((res = gfc_dep_compare_expr (l_start, r_start)) == 0
+ || r
--- Comment #2 from dominiq at lps dot ens dot fr 2010-07-01 20:23 ---
Lightly tested patch that does not create temporaries for the test in comment
#1
--- ../_clean/gcc/fortran/dependency.c 2010-06-21 17:31:37.0 +0200
+++ gcc/fortran/dependency.c2010-07-01 22:16:51.00
--- Comment #1 from tkoenig at gcc dot gnu dot org 2010-06-04 22:39 ---
The particular test case from comment #1 is now fixed.
Here's one that still fails:
subroutine foo(a, b)
real :: a(40), b(40)
a(1:20:3) = a(1:19:3)
a(1:19:3) = a(1:19:3)
end subroutine foo
g...@linux-fd1f:/t
--
tkoenig at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |tkoenig at gcc dot gnu dot
|dot org
14 matches
Mail list logo