diff options
author | Richard Guenther <rguenther@suse.de> | 2012-08-14 09:32:06 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-08-14 09:32:06 +0000 |
commit | 343c5d461c4f8659b1acc74a99ae78ac234b8ba7 (patch) | |
tree | 32c038a5cec0dd3d2ea3fd84d0a012318a343540 /gcc | |
parent | dbabddf32d99e53e3dd0953267b87939ecb014f9 (diff) | |
download | gcc-343c5d461c4f8659b1acc74a99ae78ac234b8ba7.zip gcc-343c5d461c4f8659b1acc74a99ae78ac234b8ba7.tar.gz gcc-343c5d461c4f8659b1acc74a99ae78ac234b8ba7.tar.bz2 |
tree-into-ssa.c (update_ssa): Verify we do not rename symbols that are already partly in SSA form.
2012-08-14 Richard Guenther <rguenther@suse.de>
* tree-into-ssa.c (update_ssa): Verify we do not rename
symbols that are already partly in SSA form.
From-SVN: r190377
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-into-ssa.c | 24 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f24b84a..b0cb308 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-08-14 Richard Guenther <rguenther@suse.de> + + * tree-into-ssa.c (update_ssa): Verify we do not rename + symbols that are already partly in SSA form. + 2012-08-14 Jakub Jelinek <jakub@redhat.com> PR middle-end/53411 diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index e62e3fe..50e2eff 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -3247,6 +3247,30 @@ update_ssa (unsigned update_flags) statements and set local live-in information for the PHI placement heuristics. */ prepare_block_for_update (start_bb, insert_phi_p); + +#ifdef ENABLE_CHECKING + for (i = 1; i < num_ssa_names; ++i) + { + tree name = ssa_name (i); + if (!name + || virtual_operand_p (name)) + continue; + + /* For all but virtual operands, which do not have SSA names + with overlapping life ranges, ensure that symbols marked + for renaming do not have existing SSA names associated with + them as we do not re-write them out-of-SSA before going + into SSA for the remaining symbol uses. */ + if (marked_for_renaming (SSA_NAME_VAR (name))) + { + fprintf (stderr, "Existing SSA name for symbol marked for " + "renaming: "); + print_generic_expr (stderr, name, TDF_SLIM); + fprintf (stderr, "\n"); + internal_error ("SSA corruption"); + } + } +#endif } else { |