diff options
| author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-07 17:27:23 +0000 |
|---|---|---|
| committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-07 17:27:23 +0000 |
| commit | d35df86bca7bd78fc95fec2d3c8127f47644bd4f (patch) | |
| tree | 41fce5db230dcc69de1ed2f9937153ea110ccedc | |
| parent | 0a8f1add69f20491d548ac161a1623a0ad8aa8c1 (diff) | |
| download | ppe42-gcc-d35df86bca7bd78fc95fec2d3c8127f47644bd4f.tar.gz ppe42-gcc-d35df86bca7bd78fc95fec2d3c8127f47644bd4f.zip | |
* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
Return true for non-addressable GIMPLE operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140941 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization4.adb | 9 | ||||
| -rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization4_pkg.adb | 17 | ||||
| -rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization4_pkg.ads | 9 | ||||
| -rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 2 |
6 files changed, 46 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c00e34a03a6..a2c1ae337b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-10-07 Eric Botcazou <ebotcazou@adacore.com> + + * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>: + Return true for non-addressable GIMPLE operands. + 2008-10-07 H.J. Lu <hongjiu.lu@intel.com> PR target/24765 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3e13806fd16..4ad05b06a82 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-10-07 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/loop_optimization4.adb: New test. + * gnat.dg/loop_optimization4_pkg.ad[sb]: New helper. + 2008-10-07 Bob Wilson <bob.wilson@acm.org> * gcc.dg/compat/struct-layout-1_generate.c (dg_options): New. Moved diff --git a/gcc/testsuite/gnat.dg/loop_optimization4.adb b/gcc/testsuite/gnat.dg/loop_optimization4.adb new file mode 100644 index 00000000000..a6799f393e7 --- /dev/null +++ b/gcc/testsuite/gnat.dg/loop_optimization4.adb @@ -0,0 +1,9 @@ +-- { dg-do run } +-- { dg-options "-O2" } + +with Loop_Optimization4_Pkg; use Loop_Optimization4_Pkg; + +procedure Loop_Optimization4 is +begin + Add ("Nothing"); +end; diff --git a/gcc/testsuite/gnat.dg/loop_optimization4_pkg.adb b/gcc/testsuite/gnat.dg/loop_optimization4_pkg.adb new file mode 100644 index 00000000000..ba372f6bddd --- /dev/null +++ b/gcc/testsuite/gnat.dg/loop_optimization4_pkg.adb @@ -0,0 +1,17 @@ +package body Loop_Optimization4_Pkg is + + procedure Add (Phrase : String) is + begin + if Debug_Buffer_Len = Max_Debug_Buffer_Len then + return; + end if; + for I in Phrase'Range loop + Debug_Buffer_Len := Debug_Buffer_Len + 1; + Debug_Buffer (Debug_Buffer_Len) := Phrase (I); + if Debug_Buffer_Len = Max_Debug_Buffer_Len then + exit; + end if; + end loop; + end Add; + +end Loop_Optimization4_Pkg; diff --git a/gcc/testsuite/gnat.dg/loop_optimization4_pkg.ads b/gcc/testsuite/gnat.dg/loop_optimization4_pkg.ads new file mode 100644 index 00000000000..a07c4e568c6 --- /dev/null +++ b/gcc/testsuite/gnat.dg/loop_optimization4_pkg.ads @@ -0,0 +1,9 @@ +package Loop_Optimization4_Pkg is + + Max_Debug_Buffer_Len : Natural := 8 * 1024; + Debug_Buffer : String (1 .. Max_Debug_Buffer_Len); + Debug_Buffer_Len : Natural range 0 .. Max_Debug_Buffer_Len; + + procedure Add (Phrase : String); + +end Loop_Optimization4_Pkg; diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index 4639588a162..c924a7631db 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -1558,7 +1558,7 @@ may_be_nonaddressable_p (tree expr) non-addressability may be uncovered again, causing ADDR_EXPRs of inappropriate objects to be built. */ if (is_gimple_reg (TREE_OPERAND (expr, 0)) - || is_gimple_min_invariant (TREE_OPERAND (expr, 0))) + || !is_gimple_addressable (TREE_OPERAND (expr, 0))) return true; /* ... fall through ... */ |

