diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-03 06:06:01 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-03 06:06:01 +0000 |
commit | 2dda64a6258fe213cb75f8a1b381d6a8ce338bb4 (patch) | |
tree | 69dc5d71503b8283d8144704ac5beaf98a8a2c94 /gcc/tree-data-ref.c | |
parent | d3ed35175e394ed9bf2721192f14f57c91c1fbe9 (diff) | |
download | gcc-2dda64a6258fe213cb75f8a1b381d6a8ce338bb4.tar.gz |
2009-06-03 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r148111
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@148114 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-data-ref.c')
-rw-r--r-- | gcc/tree-data-ref.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index dc79e8a8bc4..2181f469ca0 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -718,17 +718,26 @@ dr_analyze_innermost (struct data_reference *dr) base_iv.no_overflow = true; } - if (!poffset || !in_loop) + if (!poffset) { offset_iv.base = ssize_int (0); offset_iv.step = ssize_int (0); } - else if (!simple_iv (loop, loop_containing_stmt (stmt), - poffset, &offset_iv, false)) + else { - if (dump_file && (dump_flags & TDF_DETAILS)) - fprintf (dump_file, "failed: evolution of offset is not affine.\n"); - return false; + if (!in_loop) + { + offset_iv.base = poffset; + offset_iv.step = ssize_int (0); + } + else if (!simple_iv (loop, loop_containing_stmt (stmt), + poffset, &offset_iv, false)) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, "failed: evolution of offset is not" + " affine.\n"); + return false; + } } init = ssize_int (pbitpos / BITS_PER_UNIT); |