aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-08-14 09:32:06 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-08-14 09:32:06 +0000
commit343c5d461c4f8659b1acc74a99ae78ac234b8ba7 (patch)
tree32c038a5cec0dd3d2ea3fd84d0a012318a343540 /gcc
parentdbabddf32d99e53e3dd0953267b87939ecb014f9 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/tree-into-ssa.c24
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
{