aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-12-31 11:38:05 -0800
committerAndrew Pinski <pinskia@gcc.gnu.org>2005-12-31 11:38:05 -0800
commit2984956b2f436d4be9d85777a4d4ba1ea00a208a (patch)
tree8f771f9adc1b54917c2fdc4ed8487a967b013529 /gcc
parent67570aba0d22b6c21b9b4e541ba6225852175f75 (diff)
downloadgcc-2984956b2f436d4be9d85777a4d4ba1ea00a208a.zip
gcc-2984956b2f436d4be9d85777a4d4ba1ea00a208a.tar.gz
gcc-2984956b2f436d4be9d85777a4d4ba1ea00a208a.tar.bz2
re PR tree-optimization/25612 (Ada bootstrap failure on x86_64 find_or_generate_expression, at tree-ssa-pre.c:2028)
2005-12-31 Andrew Pinski <pinskia@ohysics.uc.edu> PR tree-opt/25612 * tree-ssa-pre.c (compute_avail): Treat the static chain decl as a parameter and pretend that it is defined in the entry basic block. From-SVN: r109200
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-pre.c13
2 files changed, 19 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 76a237d..43098de 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-31 Andrew Pinski <pinskia@ohysics.uc.edu>
+
+ PR tree-opt/25612
+ * tree-ssa-pre.c (compute_avail): Treat the static chain decl as a
+ parameter and pretend that it is defined in the entry basic block.
+
2005-12-30 Kazu Hirata <kazu@codesourcery.com>
* tree-outof-ssa.c (_elim_graph): Change the type of STACK to
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index f0bf020..2e2fd64 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3086,6 +3086,19 @@ compute_avail (void)
}
}
+ /* Likewise for the static chain decl. */
+ if (cfun->static_chain_decl)
+ {
+ param = cfun->static_chain_decl;
+ if (default_def (param) != NULL)
+ {
+ tree def = default_def (param);
+ vn_lookup_or_add (def, NULL);
+ bitmap_insert_into_set (TMP_GEN (ENTRY_BLOCK_PTR), def);
+ bitmap_value_insert_into_set (AVAIL_OUT (ENTRY_BLOCK_PTR), def);
+ }
+ }
+
/* Allocate the worklist. */
worklist = XNEWVEC (basic_block, n_basic_blocks);