diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-12-31 11:38:05 -0800 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2005-12-31 11:38:05 -0800 |
commit | 2984956b2f436d4be9d85777a4d4ba1ea00a208a (patch) | |
tree | 8f771f9adc1b54917c2fdc4ed8487a967b013529 /gcc | |
parent | 67570aba0d22b6c21b9b4e541ba6225852175f75 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-pre.c | 13 |
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); |