diff options
author | Richard Biener <rguenther@suse.de> | 2019-02-22 08:36:30 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-02-22 08:36:30 +0000 |
commit | 3c8b06dcc68be1ba6dbb01fbbd32ba2a337dd3b8 (patch) | |
tree | bb1ea56d5a42df8b7bb28149592007fc6c94b08e /gcc/tree-inline.c | |
parent | 406e490892c067d36969c664ae7fb7ac09fcfb62 (diff) | |
download | gcc-3c8b06dcc68be1ba6dbb01fbbd32ba2a337dd3b8.zip gcc-3c8b06dcc68be1ba6dbb01fbbd32ba2a337dd3b8.tar.gz gcc-3c8b06dcc68be1ba6dbb01fbbd32ba2a337dd3b8.tar.bz2 |
re PR tree-optimization/87609 (miscompilation with restrict and loop)
2019-02-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/87609
* tree-core.h (tree_base): Document special clique values.
* tree-inline.c (remap_dependence_clique): Do not use the
special clique value of one.
(maybe_set_dependence_info): Use clique one.
(clear_dependence_clique): New callback.
(compute_dependence_clique): Clear clique one from all refs
before assigning it (again).
From-SVN: r269097
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 98cfbe3..9017da8 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -911,7 +911,12 @@ remap_dependence_clique (copy_body_data *id, unsigned short clique) bool existed; unsigned short &newc = id->dependence_map->get_or_insert (clique, &existed); if (!existed) - newc = ++cfun->last_clique; + { + /* Clique 1 is reserved for local ones set by PTA. */ + if (cfun->last_clique == 0) + cfun->last_clique = 1; + newc = ++cfun->last_clique; + } return newc; } |