[Bug tree-optimization/26854] Inordinate compile times on large routines

2006-04-27 Thread amacleod at gcc dot gnu dot org


--- Comment #15 from amacleod at redhat dot com  2006-04-27 20:22 ---
Subject: Bug 26854

Author: amacleod
Date: Thu Apr 27 20:22:17 2006
New Revision: 113321

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113321
Log:
Implement new immediate use iterators.

2006-04-27  Andrew MacLeod  <[EMAIL PROTECTED]>

PR tree-optimization/26854
* tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
* doc/tree-ssa.texi: Update immuse iterator documentation.
* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
* tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
* tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
first_safe_imm_use, next_safe_imm_use): Remove.
(end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
(end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
(move_use_after_head): New.  Helper function to sort immuses in a stmt.
(link_use_stmts_after): New.  Link all immuses in a stmt
consescutively.
(first_imm_use_stmt): New.  Get first stmt in an immuse list.
(next_imm_use_stmt): New.  Get next stmt in an immuse list.
(first_imm_use_on_stmt): New.  Get first immuse on a stmt.
(end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
(next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
(perfect_nestify): Use new iterator.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Use new 
iterator.
* tree-flow.h (struct immediate_use_iterator_d): Add comments.
(next_imm_name): New field in struct immediate_use_iterator_d.
(FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
(FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT, 
FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
* tree-cfg.c (replace_uses_by): Use new iterator.
* tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
* tree-ssa-operands.c (correct_use_link): Remove.
(finalize_ssa_use_ops): No longer call correct_use_link.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/tree-ssa.texi
trunk/gcc/lambda-code.c
trunk/gcc/tree-cfg.c
trunk/gcc/tree-flow-inline.h
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa-dom.c
trunk/gcc/tree-ssa-forwprop.c
trunk/gcc/tree-ssa-math-opts.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree-ssa-threadedge.c
trunk/gcc/tree-vect-transform.c
trunk/gcc/tree-vrp.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854



[Bug tree-optimization/27381] [4.2 Regression] ice on valid code with -O

2006-05-03 Thread amacleod at gcc dot gnu dot org


--- Comment #7 from amacleod at redhat dot com  2006-05-03 17:13 ---
Subject: Bug 27381

Author: amacleod
Date: Wed May  3 17:13:37 2006
New Revision: 113499

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113499
Log:


2006-05-02  Andrew MacLeod  <[EMAIL PROTECTED]>

PR tree-optimization/27381
* tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, 
maintain the same immediate_use links.
* tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker 
node rather than segfaulting.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-phinodes.c
trunk/gcc/tree-ssa-operands.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27381



[Bug c++/26757] [4.1/4.2 regression] C++ front-end producing two DECLs with the same UID

2006-05-16 Thread amacleod at gcc dot gnu dot org


--- Comment #23 from amacleod at redhat dot com  2006-05-16 20:51 ---
Subject: Bug 26757

Author: amacleod
Date: Tue May 16 20:51:14 2006
New Revision: 113829

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113829
Log:
Remove redundant hash table lookup when finding referenced vars.

2006-05-16  Andrew MacLeod  <[EMAIL PROTECTED]>

PR c++/26757
* tree-dfa.c (struct walk_state): Remove.
(add_referenced_var): Change Parameters.
(find_referenced_vars): Done use a walk_state.
(find_vars_r): Unused parameter and change parms to add_referenced_var.
(referenced_var_insert): Assert same UID has not been inserted.
(add_referenced_var): Check if var exists via referenced_var table.
(get_virtual_var): Call add_referenced_var with new parameter.


Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/tree-dfa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26757



[Bug c++/26757] [4.2 regression] C++ front-end producing two DECLs with the same UID

2006-05-23 Thread amacleod at gcc dot gnu dot org


--- Comment #25 from amacleod at redhat dot com  2006-05-23 14:07 ---
Subject: Bug 26757

Author: amacleod
Date: Tue May 23 14:07:21 2006
New Revision: 114018

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114018
Log:

2006-05-23  Andrew MacLeod  <[EMAIL PROTECTED]>

PR c++/26757
* tree-ssa-loop-im.c (determine_invariantness_stmt): Use 
add_referenced_var instead of add_referenced_tmp_var.
* tree-complex.c (create_one_component_var): Use add_referenced_var.
* tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
add_referenced_var.
* tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
tree_optimize_tail_calls_1): Use add_referenced_var.
* tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
* tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
Use add_referenced_var.
* tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
* gimplify.c (force_gimple_operand): Use add_referenced_var.
* tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
Use add_referenced_var.
* tree-dfa.c (struct walk_state): Remove.
(find_referenced_vars): Remove walk state and vars_found hash table.
(make_rename_temp): Use add_referenced_var.
(find_vars_r): Pass less parameters to add_referenced_var.
(referenced_var_p): New.  Is var in referenced_var hash table.
(referenced_var_insert): Assert var isn't already in hash table.
(add_referenced_var): Don't need walk_state parameter.  Add var if it
isn't already in the hash table.
(add_referenced_tmp_var): Remove.
(find_new_referenced_vars_1): Use add_referenced_var.
* tree-ssa-pre.c (create_expression_by_pieces, 
insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
Use add_referenced_var.
* tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use 
add_referenced_var.
* tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
vect_create_data_ref_ptr, vect_create_destination_var,
vect_init_vector, vect_build_loop_niters, 
vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
Use add_referenced_var.
* tree-outof-ssa.c (create_temp): Use add_referenced_var.
* tree-flow.h (add_referenced_tmp_var): Remove prototype
(add_referenced_var): Add prototype.
* tree-ssa-structalias.c (get_constraint_for, 
intra_create_variable_infos): Use add_referenced_var.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimplify.c
trunk/gcc/lambda-code.c
trunk/gcc/tree-complex.c
trunk/gcc/tree-dfa.c
trunk/gcc/tree-flow.h
trunk/gcc/tree-if-conv.c
trunk/gcc/tree-outof-ssa.c
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-loop-im.c
trunk/gcc/tree-ssa-loop-ivopts.c
trunk/gcc/tree-ssa-loop-manip.c
trunk/gcc/tree-ssa-phiopt.c
trunk/gcc/tree-ssa-pre.c
trunk/gcc/tree-ssa-structalias.c
trunk/gcc/tree-tailcall.c
trunk/gcc/tree-vect-patterns.c
trunk/gcc/tree-vect-transform.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26757



[Bug middle-end/27793] [4.1 Regression] num_ssa_names inconsistent or immediate use iterator wrong

2006-06-06 Thread amacleod at gcc dot gnu dot org


--- Comment #17 from amacleod at redhat dot com  2006-06-07 00:51 ---
Subject: Bug 27793

Author: amacleod
Date: Wed Jun  7 00:51:27 2006
New Revision: 114458

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114458
Log:
2006-06-06  Andrew MacLeod  <[EMAIL PROTECTED]>

PR middle-end/27793
* tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate 
referenced_variables with matching DECL_UID's.
(find_referenced_vars): Make sure duplicate list is empty to start.
(add_referenced_var): Add var to duplicate list if required.
* tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
* tree-flow.h (referenced_vars_dup_list): External declaration.


Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/tree-dfa.c
branches/gcc-4_1-branch/gcc/tree-flow.h
branches/gcc-4_1-branch/gcc/tree-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27793



[Bug middle-end/27793] [4.1 Regression] num_ssa_names inconsistent or immediate use iterator wrong

2006-06-07 Thread amacleod at gcc dot gnu dot org


--- Comment #18 from amacleod at redhat dot com  2006-06-08 01:18 ---
Subject: Bug 27793

Author: amacleod
Date: Thu Jun  8 01:18:16 2006
New Revision: 114480

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114480
Log:

2006-06-07  Andrew MacLeod  <[EMAIL PROTECTED]>

PR middle-end/27793
* tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate 
referenced_variables with matching DECL_UID's.
(find_referenced_vars): Make sure duplicate list is empty to start.
(referenced_var_p): Remove.
(referenced_var_check_and_insert): Renamed from referenced_var_insert.  
Check if var is in the list, and add if needed.  Update the duplicate
list if a different var is in the list with the same DECL_UID.
(add_referenced_var): Call routine to check and insert.
* tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
* tree-flow.h (referenced_vars_dup_list): External declaration.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-dfa.c
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27793



[Bug middle-end/27793] [4.1 Regression] num_ssa_names inconsistent or immediate use iterator wrong

2006-06-15 Thread amacleod at gcc dot gnu dot org


--- Comment #21 from amacleod at redhat dot com  2006-06-15 13:30 ---
Subject: Bug 27793

Author: amacleod
Date: Thu Jun 15 13:30:17 2006
New Revision: 114678

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114678
Log:

2006-06-15  Andrew MacLeod  <[EMAIL PROTECTED]>

PR middle-end/27793
* tree-dfa.c (referenced_vars_dup_list): Remove.
(find_referenced_vars): Remove assert.
(referenced_var_check_and_insert): Replace dup list with assert.
* tree-ssa.c (delete_tree_ssa): Remove dup list processing.
* tree-flow.h (referenced_vars_dup_list): Remove extern decl.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-dfa.c
trunk/gcc/tree-flow.h
trunk/gcc/tree-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27793



[Bug tree-optimization/24709] [4.1 Regression] 4.1.0 HEAD crashes with enable-checking on huge switch statement

2005-11-14 Thread amacleod at gcc dot gnu dot org


--- Comment #6 from amacleod at redhat dot com  2005-11-14 15:18 ---
Subject: Bug 24709

Author: amacleod
Revision: 106865
Modified property: svn:log

Modified: svn:log at Mon Nov 14 15:18:46 2005
--
--- svn:log (original)
+++ svn:log Mon Nov 14 15:18:46 2005
@@ -1,24 +1,4 @@

-
-In an attempt to prevent an infinite loop when verifying the immediate use
links, an arbitrary limit was checked which is higher than one would ever
expect to see.  Unfortunately, the limit was set too low. the original value of
30,000 uses
-was exceeded by this test case (It peaked at about 32,000+).  The new limit
should never be reached
-
+   PR tree-optimization/24709
* tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
loop check.
-
-
-Index: tree-ssa-operands.c
-===
 tree-ssa-operands.c(revision 106272)
-+++ tree-ssa-operands.c(working copy)
-@@ -2012,8 +2012,8 @@
- 
-   prev = ptr;
-   ptr = ptr->next;
--  /* Avoid infinite loops.  */
--  if (count++ > 3)
-+  /* Avoid infinite loops.  50,000,000 uses probably indicates a problem.
 */
-+  if (count++ > 5000)
-   goto error;
- }
- 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24709



[Bug tree-optimization/24709] [4.1 Regression] 4.1.0 HEAD crashes with enable-checking on huge switch statement

2005-11-14 Thread amacleod at gcc dot gnu dot org


--- Comment #7 from amacleod at redhat dot com  2005-11-14 16:01 ---
Subject: Bug 24709

Author: amacleod
Date: Sun Nov 13 16:09:14 2005
New Revision: 106865

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=106865
Log:

PR tree-optimization/24709
* tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
loop check.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-operands.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24709



[Bug middle-end/28071] [4.1/4.2 regression] A file that can not be compiled in reasonable time/space

2006-08-28 Thread amacleod at gcc dot gnu dot org


--- Comment #50 from amacleod at redhat dot com  2006-08-28 17:18 ---
Subject: Bug 28071

Author: amacleod
Date: Mon Aug 28 17:18:33 2006
New Revision: 116511

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116511
Log:


revert 116257 which is the rewrite_liverange_info patch, so be replaced with
the two patches I created for bug 28071.



Modified:
branches/out-of-ssa-the-sequel/gcc/ChangeLog
branches/out-of-ssa-the-sequel/gcc/tree-outof-ssa.c
branches/out-of-ssa-the-sequel/gcc/tree-ssa-live.c
branches/out-of-ssa-the-sequel/gcc/tree-ssa-live.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28071



[Bug tree-optimization/29877] [4.0/4.1/4.2 Regression] out of SSA (TER) extends variable life of variable beyond original declared

2007-03-09 Thread amacleod at gcc dot gnu dot org


--- Comment #7 from amacleod at redhat dot com  2007-03-09 18:11 ---
Subject: Bug 29877

Author: amacleod
Date: Fri Mar  9 18:11:40 2007
New Revision: 122754

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122754
Log:
2006-03-09  Mark Shinwell  <[EMAIL PROTECTED]>
Andrew MacLeod  <[EMAIL PROTECTED]>

PR tree-optimization/29877
* tree-outof-ssa.c (check_replaceable): Don't allow TER to replace
an expression if the RHS is a register variable.

testsuite
* gcc.dg/pr16194.c: Skip test entirely if we don't know the name of
a hard register for the target concerned.


Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
branches/gcc-4_2-branch/gcc/testsuite/gcc.dg/pr16194.c
branches/gcc-4_2-branch/gcc/tree-outof-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29877



[Bug tree-optimization/37102] [4.3/4.4 Regression] out-of-SSA is broken

2008-09-18 Thread amacleod at gcc dot gnu dot org


--- Comment #18 from amacleod at redhat dot com  2008-09-18 14:00 ---
Subject: Bug 37102

Author: amacleod
Date: Thu Sep 18 13:58:55 2008
New Revision: 140455

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140455
Log:
fix PR 37102 by having out of ssa remove dead PHI nodes.


Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr37102.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-outof-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37102



[Bug middle-end/37567] tree SSA to normal checking takes abnormally long time

2008-09-19 Thread amacleod at gcc dot gnu dot org


--- Comment #10 from amacleod at redhat dot com  2008-09-19 17:38 ---
Subject: Bug 37567

Author: amacleod
Date: Fri Sep 19 17:37:13 2008
New Revision: 140494

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140494
Log:

PR middle-end/37567
* tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
empty before freeing them.
(find_replaceable_exprs): Move asserts to free_temp_expr_table.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-ter.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37567



[Bug tree-optimization/37102] [4.3 Regression] out-of-SSA is broken

2008-10-17 Thread amacleod at gcc dot gnu dot org


--- Comment #23 from amacleod at redhat dot com  2008-10-17 17:37 ---
Subject: Bug 37102

Author: amacleod
Date: Fri Oct 17 17:35:58 2008
New Revision: 141195

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141195
Log:
fix PR tree-optimization/37102

2008-10-17  Andrew MacLeod  <[EMAIL PROTECTED]>

PR tree-optimization/37102
* tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args  
from a node. Check to see if another PHI is dead.
(eliminate_useless_phis): Rename from eliminate_virtual_phis and remove
real PHIs which have no uses.
(rewrite_out_of_ssa): Call eliminate_useless_phis.

2008-10-17  Andrew MacLeod  <[EMAIL PROTECTED]>

PR tree-optimization/37102
* gcc.c-torture/execute/pr37102.c: New Test.


Added:
branches/gcc-4_3-branch/gcc/testsuite/gcc.c-torture/execute/pr37102.c
Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog
branches/gcc-4_3-branch/gcc/tree-outof-ssa.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37102



[Bug rtl-optimization/19097] [3.4/4.0/4.1 regression] Quadratic behavior with many sets for the same register in gcse CPROP

2005-10-31 Thread amacleod at gcc dot gnu dot org


--- Comment #25 from amacleod at redhat dot com  2005-10-31 15:19 ---
Subject: Bug 19097

Author: amacleod
Date: Mon Oct 31 13:38:05 2005
New Revision: 106272

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=106272
Log:

2005-10-31  Andrew MacLeod  <[EMAIL PROTECTED]>

PR tree-optimization/19097
* tree-ssa-operands.c (correct_use_link): Don't look for modified
stmts.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-operands.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19097



[Bug tree-optimization/30159] [4.3 Regression] gcc.c-torture/execute/20010422-1.c is miscompiled

2006-12-12 Thread amacleod at gcc dot gnu dot org


--- Comment #4 from amacleod at redhat dot com  2006-12-12 15:50 ---
Subject: Bug 30159

Author: amacleod
Date: Tue Dec 12 15:50:06 2006
New Revision: 119792

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119792
Log:

2006-12-12  Andrew Macleod  <[EMAIL PROTECTED]>

PR tree-optimization/30159
* tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name 
functions in case a default_def coalesce is required.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-coalesce.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30159