[Bug middle-end/37852] [graphite] ICE in gbb_loop_index, at graphite.h:252

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2008-12-11 07:34 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38125] [graphite] ICE :Segmentation fault

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2008-12-11 07:34 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38039] [graphite] -02/O3 -fgraphite-identity causes ICE when compiling aermod.f90 Polyhedron 2005 benchmark

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2008-12-11 07:33 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/37928] [graphite] ICE :Segmentation fault

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #6 from spop at gcc dot gnu dot org  2008-12-11 07:32 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38038] [graphite] -03 -fgraphite-identity causes ICE when compiling ac.f90 Polyhedron 2005 benchmark

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2008-12-11 07:32 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/37980] [graphite] ICE : verify_ssa failed

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #7 from spop at gcc dot gnu dot org  2008-12-11 07:31 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38083] [graphite] ICE: in verify_loop_structure, at cfgloop.c:1569

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2008-12-11 07:30 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38073] [graphite] ICE: Segmentation fault

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #4 from spop at gcc dot gnu dot org  2008-12-11 07:30 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38038] [graphite] -03 -fgraphite-identity causes ICE when compiling ac.f90 Polyhedron 2005 benchmark

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 38038

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/38073] [graphite] ICE: Segmentation fault

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 38073

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/38083] [graphite] ICE: in verify_loop_structure, at cfgloop.c:1569

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 38083

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #9 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 37883

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/38125] [graphite] ICE :Segmentation fault

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 38125

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/37852] [graphite] ICE in gbb_loop_index, at graphite.h:252

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 37852

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/38039] [graphite] -02/O3 -fgraphite-identity causes ICE when compiling aermod.f90 Polyhedron 2005 benchmark

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #3 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 38039

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/37928] [graphite] ICE :Segmentation fault

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #5 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 37928

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug middle-end/37980] [graphite] ICE : verify_ssa failed

2008-12-10 Thread spop at gcc dot gnu dot org


--- Comment #6 from spop at gcc dot gnu dot org  2008-12-11 07:24 ---
Subject: Bug 37980

Author: spop
Date: Thu Dec 11 07:23:02 2008
New Revision: 142673

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673
Log:
2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

Fix testsuite/gfortran.dg/graphite/id-4.f90.
* graphite.c (scan_tree_for_params): Do not compute the multiplicand
when not needed.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>

* graphite.c (build_scops_1): Initialize open_scop.exit
and sinfo.last.

2008-12-11  Sebastian Pop  <[EMAIL PROTECTED]>
Jan Sjodin  <[EMAIL PROTECTED]>
Harsha Jagasia  <[EMAIL PROTECTED]>

PR middle-end/37852
PR middle-end/37883
PR middle-end/37928
PR middle-end/37980
PR middle-end/38038
PR middle-end/38039
PR middle-end/38073
PR middle-end/38083
PR middle-end/38125

* tree-phinodes.c (remove_phi_nodes): New, extracted from...
* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
...here.
* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
* Makefile.in (graphite.o): Depend on value-prof.h.
(graphite.o-warn): Removed -Wno-error.
* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list 
to be a NULL pointer.  Call update_stmt.  Return the newly created 
cannonical induction variable.

* graphite.h (debug_rename_map): Declared.  Fix some comments.

* graphite.c: Reimplement the code generation from graphite to gimple.
Include value-prof.h.
(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
(get_old_iv_from_ssa_name): Removed.
(graphite_stmt_p): New.
(new_graphite_bb): Test for useful statements before building a
graphite statement for the basic block.
(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without 
reason.
(recompute_all_dominators, graphite_verify,
nb_reductions_in_loop, graphite_loop_normal_form): New.
(scop_record_loop): Call graphite_loop_normal_form.
(build_scop_loop_nests): Iterate over all the blocks of the
function instead of relying on the incomplete information from
SCOP_BBS.  Return the success of the operation.
(find_params_in_bb): Use the data from GBB_DATA_REFS.
(add_bb_domains): Removed.
(build_loop_iteration_domains): Don't call add_bb_domains.
Add the iteration domain only to the basic blocks that have been
translated to graphite.
(build_scop_conditions_1): Add constraints only if the basic
block have been translated to graphite.
(build_scop_data_accesses): Completely disabled until data
dependence is correctly implemented.
(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
(remove_all_edges_1, remove_all_edges): Removed.
(get_new_name_from_old_name): New.
(graphite_rename_variables_in_stmt): Renamed 
rename_variables_in_stmt.  Call get_new_name_from_old_name.
Use replace_exp and update_stmt.
(is_old_iv): Renamed is_iv.
(expand_scalar_variables_stmt): Extra parameter for renaming map.
Use replace_exp and update_stmt.
(expand_scalar_variables_expr): Same.  Use the map to get the
new names for the renaming of induction variables and for the
renaming of variables after a basic block has been copied.
(expand_scalar_variables): Same.
(graphite_rename_variables): Renamed rename_variables.
(move_phi_nodes): Removed.
(get_false_edge_from_guard_bb): New.
(build_iv_mapping): Do not insert the induction variable of a
loop in the renaming iv map if the basic block does not belong
to that loop.
(register_old_new_names, graphite_copy_stmts_from_block,
copy_bb_and_scalar_dependences): New.
(translate_clast): Heavily reimplemented: copy basic blocks,
do not move them.  Finally, in call cleanup_tree_cfg in gloog.
At each translation step call graphite_verify ensuring the 
consistency of the SSA, loops and dominators information.
(collect_virtual_phis, find_vdef_for_var_in_bb,
find_vdef_for_var_1, find_vdef_for_var,
patch_phis_for_virtual_defs): Removed huge hack.
(mark_old_loops, remove_dead_loops, skip_phi_defs,
collect_scop_exit_phi_args, patch_scop_exit_phi_args,
gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
(remove_sese_region, ifsese, if_region_entry, if_region_exit,
if_region_get_condition_block, if_region_set_false_region,
create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
sese_find_uses_to_rename_use, sese_f

[Bug tree-optimization/38464] [4.4 Regression] vect/costmodel/ppc/costmodel-slp-12.c fails to vectorize

2008-12-10 Thread irar at gcc dot gnu dot org


--- Comment #1 from irar at gcc dot gnu dot org  2008-12-11 07:15 ---
Subject: Bug 38464

Author: irar
Date: Thu Dec 11 07:13:47 2008
New Revision: 142672

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142672
Log:
PR tree-optimization/38464
* gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Check that three
loops are vectorized.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #63 from steven at gcc dot gnu dot org  2008-12-11 07:03 ---
Re. comment #62:
Transforming the code and adding notes to allow the compiler to undo the
transformation is not an option with the available infrastructure in GCC. 
You'd have to add some kind of note (something like REG_EQUAL) to GIMPLE, and
then, maybe it is possible -- but still only when profile information is
available (i.e. practically never for -Os or for the kernel).

I agree with Zdenek that the best solution for now, to fix this regression, is
to honor the user's decision to use a loop.  For anything more fancy than that,
patches welcome ;-)

You also have to keep in mind that the issue in this problem report is that GCC
introduces a div.  That is the regression here, and the only thing we should be
addressing in this PR, IMHO.

The issue is *not* that GCC could do better at recognizing situations where
divmod could be used.  GCC has never been able to do that, so there is no
regression in that regard.  If someone wishes to add some kind of idiom
recognition for divmod to GCC, and/or optimization hints from GIMPLE to RTL via
a GIMPLE-equivalent of REG_EQUAL, then he/she should open new PRs for that,
marked "enhancement".


-- 


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



[Bug target/30271] -mstrict-align can an store extra for struct agrument passing

2008-12-10 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2008-12-11 04:42 ---
So the problem with the stores here is that the base is arg_pointer_rtx which
is still a frame pointer related offset.  I think the same can be said is true
of stack_pointer_rtx too.  We only set frame_related for frame_pointer_rtx and
hard_frame_pointer_rtx but arg_pointer_rtx will become a frame pointer later
one too.  The only issue is that there might not be correct dependencies with
respect of arg_pointer_rtx.

Kenny,
  Do you agree?


-- 


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



[Bug c/38483] New: generated aborts lose previous side-effects

2008-12-10 Thread jsm28 at gcc dot gnu dot org
When the compiler generates an abort for runtime-undefined code, the abort
can be executed too soon when side-effects before the undefined behavior
might have caused the undefined behavior not to happen after all.

For calls to functions cast to incompatible types, the undefined behavior
happens when the call does, which is after all the arguments (and the function
designator) have been evaluated.  So they need to be evaluated for their
side-effects before the abort is evaluated.  The following testcase illustrates
this; it should exit successfully but instead aborts.

extern void exit (int);
extern void abort (void);

int
foo (void)
{
  exit (0);
  return 0;
}

void
bar (void)
{
}

int
main (void)
{
  ((long (*)(int))bar) (foo ());
  abort ();
}

Much the same applies to va_arg, although the validity of the programs in this
case is less clear (because the argument passed to va_arg isn't actually
an object declared by the calling function).

#include 

extern void exit (int);
extern void abort (void);

va_list ap;
float f;

va_list *
foo (void)
{
  exit (0);
  return ≈
}

void
bar (int i, ...)
{
  va_start (ap, i);
  f = va_arg (*foo (), float);
  va_end (ap);
}

int
main (void)
{
  bar (1, 0);
  abort ();
}


-- 
   Summary: generated aborts lose previous side-effects
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jsm28 at gcc dot gnu dot org
OtherBugsDependingO 16620,16989
 nThis:


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



[Bug tree-optimization/31849] [4.3/4.4 Regression] Code size increased with PR 31360 (IV-opts not understanding autoincrement)

2008-12-10 Thread amylaar at gcc dot gnu dot org


--- Comment #45 from amylaar at gcc dot gnu dot org  2008-12-11 02:07 
---
(In reply to comment #44)
> Subject: Re:  [4.3/4.4 Regression] Code size increased with PR 31360 (IV-opts
> not understanding autoincrement)
> 
> Joern, can you attach the updated patch?

I still wait for confirmation from the FSF that our Copyright assignment has
been filed.

In the meantime, I'll send you the patch by personal email.


-- 


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



[Bug testsuite/35677] Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

2008-12-10 Thread howarth at nitro dot med dot uc dot edu


--- Comment #12 from howarth at nitro dot med dot uc dot edu  2008-12-11 
02:02 ---
This patch appears to solve the issue on i686-apple-darwin9 from the couple
testsuite runs I have done in libgomp.

=== libgomp Summary for unix/-m32 ===

# of expected passes2071
# of unsupported tests  128

=== libgomp Summary for unix/-m64 ===

# of expected passes2071
# of unsupported tests  128

=== libgomp Summary ===

# of expected passes4142
# of unsupported tests  256


-- 


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



[Bug libstdc++/37144] A bug in include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp

2008-12-10 Thread hjl dot tools at gmail dot com


--- Comment #12 from hjl dot tools at gmail dot com  2008-12-11 01:17 
---
This program shows the problem:

[EMAIL PROTECTED] 37144]$ cat x.cc 
#include 
#include 

struct T1
{
  int i;
  T1 () { i = 0; }
  T1 (int x) { i = x; }
  T1 (const T1 &x) { i = x.i; }
  T1&
  operator=(T1 & __p)
{
  i = __p.i;
  return *this;
}
};

struct pair
{
  T1 first;
  T1 second;
  pair() : first(), second() { }

  pair(const T1 & __a, const T1 & __b) : first(__a), second(__b) { }

  pair&
  operator=(pair& __p)
{
  first = __p.first;
  second = __p.second;
  return *this;
}
};

typedef const T1& const_T1_reference;
typedef const pair & const_pair_reference;

const_T1_reference
extract_key_imp(const_pair_reference r_val)
{ return r_val.first; }

const_T1_reference
extract_key_imp(const_T1_reference r_val)
{ return r_val; }

int
main ()
{
  T1 t1 (21), t2 (3);
  pair p (t1, t2);
  const_T1_reference x = extract_key_imp (p);
  const_T1_reference y = extract_key_imp (t1);
  if (y.i != t1.i)
abort ();
  if (&y.i != &t1.i)
abort ();
  if (x.i != t1.i)
abort ();
  if (&x.i != &t1.i)
{
  printf ("&x.i != &t1.i\n");
  abort ();
}
  return 0;
}
[EMAIL PROTECTED] 37144]$ g++ x.cc
[EMAIL PROTECTED] 37144]$ ./a.out 
&x.i != &t1.i
Aborted
[EMAIL PROTECTED] 37144]$ 


-- 


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



[Bug libgcj/10353] [4.2/4.3/4.4 regression] Java testsuite failures

2008-12-10 Thread ghazi at gcc dot gnu dot org


--- Comment #32 from ghazi at gcc dot gnu dot org  2008-12-11 01:10 ---
(In reply to comment #31)
> How can this be a regression bug if there's not a single known-to-work
> revision?

When I originally opened this PR, my opening comment noted that the java
failures I encountered were regressions from the 3.2.x series.  Annoyingly my
comment doesn't actually list the testcases that were failing.  That doesn't
seem like something I would normally leave out. :-)  After some digging I
realized that's because the PR originally listed them in the Summary: field. 
Somewhere along the line this PR got renamed to a generic "java testsuite
failures", I think it was Eric in comment#14.  You can see the original summary
here from the gcc-bugs mailing list:
http://gcc.gnu.org/ml/gcc-bugs/2003-04/msg00378.html

For the record, those failing testcases were: Array_3, TLtest, Thread_Join,
Thread_Wait_Interrupt & Throw_2.

Here is my testsuite results from the 3.2.3 release where the testcases pass:
http://gcc.gnu.org/ml/gcc-testresults/2003-04/msg01566.html

Here is a 3.3.x result from around the same time showing the failures:
http://gcc.gnu.org/ml/gcc-testresults/2003-04/msg01574.html

Anyway, I no longer have access to solaris boxes.  I looked for recent
testsuite results to see if those testcases are still failing.  It was hard
because many people seem to post solaris2 results without java enabled.  (You
know who you are!)  Here's a couple from 4.4 trunk on solaris2.10 and 2.11 that
shows they aren't failing.  In fact the results actually look pretty good:
http://gcc.gnu.org/ml/gcc-testresults/2008-11/msg01758.html
http://gcc.gnu.org/ml/gcc-testresults/2008-11/msg00647.html

I originally reported the bugs against solaris2.7, so I don't know if the
testcases got "fixed" by the OS upgrade or something done in GCC.  Someone with
an older solaris would have to double check.  Maybe Joe Buck who has solaris2.8
could help with that.  If Joe's tests show that the specific failures I
mentioned don't appear in solaris2.8, then I would say it's fair to either
close this PR and note the remaining solaris failures in their own PRs, or at
least no longer call this PR a "regression".

I would lean towards the former, i.e. close this PR once we verify an older
solaris release and track any remaining failures in new PRs.


-- 

ghazi at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||joe dot buck at synopsys dot
   ||com
  Known to work||3.2.3


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



[Bug libstdc++/37144] A bug in include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp

2008-12-10 Thread hjl dot tools at gmail dot com


--- Comment #11 from hjl dot tools at gmail dot com  2008-12-11 00:46 
---
testsuite/util/regression/trait/assoc/type_trait.hpp has

static const_key_reference
extract_key_imp(pair_type_const_reference r_val)
{ return r_val.first; }

It may create a temporary on stack and return a reference to
the stack temporary.


-- 


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



[Bug testsuite/35677] Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

2008-12-10 Thread jakub at gcc dot gnu dot org


--- Comment #11 from jakub at gcc dot gnu dot org  2008-12-11 00:44 ---
The patch is correct if not obvious.


-- 


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



[Bug testsuite/35677] Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

2008-12-10 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca  2008-12-11 
00:40 ---
Subject: Re:  Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

> I'll try a build of current gcc trunk with your patch and see if it helps.

Problem looks the same.  You can do a quick check without a full rebuild
by removing the emultls* files from the libgcc directories, apply patch,
do make in top libgcc directory, then rerun libgomp testsuite.

The failures occur because multiple threads read an offset value of 0.

Dave


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread mmitchel at gcc dot gnu dot org


--- Comment #62 from mmitchel at gcc dot gnu dot org  2008-12-11 00:42 
---
I take Zdenek's point about the transformation from division to a loop being
profitable only if x is small.  But, that might argue that if we see the loop,
we still transform it into the division form -- but with a note that allows the
value-profiling code to turn it back.  The advantage to that is we can then
take advantage of the fact that it's division otherwise; for example, CSE it
with a manually written division, or eliminate it if multiplied by the same
value we divided by, etc.

There are a bunch of issues somewhat tangled up in here.  In any case, I am
also concerned about the fact that if the user writes division and modulus
manually, we're not taking advantage of the ABI divmod function.  IIUC, it
sounds like we could fix that by having the ARM back end always use the divmod
function as on x86.  Is that right?

-- Mark


-- 


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



[Bug c/25314] [4.2/4.3/4.4 Regression] Unreachable code at beginning of switch statement is not reported anymore

2008-12-10 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-12-11 00:35:40
   date||


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



[Bug testsuite/35677] Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

2008-12-10 Thread howarth at nitro dot med dot uc dot edu


--- Comment #9 from howarth at nitro dot med dot uc dot edu  2008-12-11 
00:28 ---
On i686-apple-darwin9, configured as...

Using built-in specs.
Target: i686-apple-darwin9
Configured with: ../gcc-4.4-20081209/configure --prefix=/sw
--prefix=/sw/lib/gcc4.4 --mandir=/sw/share/man --infodir=/sw/share/info
--enable-languages=c,c++,fortran,objc,java --with-gmp=/sw
--with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-system-zlib
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --with-arch=nocona
--with-tune=generic --build=i686-apple-darwin9 --host=i686-apple-darwin9
--target=i686-apple-darwin9
Thread model: posix
gcc version 4.4.0 20081210 (experimental) (GCC) 

I get...

rogram received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x
[Switching to process 560 thread 0x313]
0x1ae9 in MAIN__.omp_fn.0 ()
(gdb) bt
#0  0x1ae9 in MAIN__.omp_fn.0 ()
#1  0x0001a204 in gomp_thread_start (xdata=0xbfffe7f0) at
../../../gcc-4.4-20081209/libgomp/team.c:118
#2  0x910c4095 in _pthread_start ()
#3  0x910c3f52 in thread_start ()

I assume I am using emutls since I see...

nm crayptr2.exe | grep emut
1cd0 t ___emutls_get_address
1c90 t ___emutls_register_common
2014 d ___emutls_v.ip.1499
1f10 t _emutls_destroy
1ed0 t _emutls_init
2090 b _emutls_key
2040 d _emutls_mutex
2094 b _emutls_size

I'll try a build of current gcc trunk with your patch and see if it helps.


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread rakdver at kam dot mff dot cuni dot cz


--- Comment #61 from rakdver at kam dot mff dot cuni dot cz  2008-12-11 
00:28 ---
Subject: Re:  [4.3/4.4 Regression] final value replacement too aggressive for
e.g. targets with no native div/mod insns

> Furthermore, if we want to generate the loop instead, are the alternatives
> you're considering sufficient to change code like:
> 
>   ... x / 45 ...
> 
> into the loop form?  

Although I think this is somewhat unrelated, we actually already do this
(see value-prof.c).

> The style:
> 
>   a = x / N;
>   b = x % N;
> 
> is pretty common; recognizing that pattern and generating a loop, or libcall 
> to
> __aeabi_divmod, seems like a good thing.  One could argue that __aeabi_divmod
> itself should be responsible for noticing divisors that more profitably use
> repeated subtraction than other methods, on CPUs that don't have a hardware
> divide instruction.

The problem is that "profitably" depends on how large x is (i.e., using
the loop is only profitable when x is small).  As mentioned, we already
do the transformation in profile-driven optimizer, when we have this
information.

> Do we need a divmod optab?  Or, should we expect that if we provide an
> appropriate pattern in the ARM back end, combine will be able to smush the
> division and remainder operations together?

I think it should be able to (IIRC, we do so on x86).

> I guess where I'm going with this line of thinking is to argue that the
> transformation to division is fine, and that we should treat that as canonical
> -- but that we need a way to change divisions into repeated divisions if
> appropriate.

Users usually use this pattern (division by repeated subtraction) only
if the result is small; so transforming to actual division makes the
code worse (and understandably, the user angry :-) Unless profiling is
used, compiler does not have enough information to determine which form
is better, so I think we should prefer to keep whatever form was
originally in the program.


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #60 from steven at gcc dot gnu dot org  2008-12-11 00:27 ---
IMHO I the transformation to division is not fine.  I would argue this is the
core issue in this problem report.

You are right that a combination of div and mod is quite common in real-world
code.  Right now, GCC can catch that when the port emits a divmod libcall by
default instead of just a div and/or a mod.  However, I consider this a
separate issue.

GCC currently does not recognize div/mod or mod/div as patterns, because at the
tree level this would show up as two separate expressions (possibly with
statements between the div and mod expresssions), and expand works one
statement at a time.

Some targets (e.g. x86) call a divmod libcall by default for a div or a mod
instruction.  If there is a div/mod or mod/div sequence in the code, GCC
optimizes away one of the libcalls via the REG_EQUAL notes, IIRC.

But our concern now should be to avoid this situation where gcc "invents" a div
or mod instruction in the first place.


-- 


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



[Bug fortran/32715] improve diagnostics of attempted allocation of non-array

2008-12-10 Thread kargl at gcc dot gnu dot org


--- Comment #2 from kargl at gcc dot gnu dot org  2008-12-11 00:16 ---
The patch I submitted, here:

http://gcc.gnu.org/ml/fortran/2008-12/msg00167.html

gives

troutmask:sgk[224] gfc4x -o z k.f90
k.f90:2.10:

ALLOCATE(i(3))
 1
Error: Allocate-object at (1) is not a nonprocedure pointer or
an allocatable variable


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread mmitchel at gcc dot gnu dot org


--- Comment #59 from mmitchel at gcc dot gnu dot org  2008-12-11 00:14 
---
Steven, Zdenek --

Is there any way to teach the compiler to use the ARM __aeabi_divmod routine,
which provides both the quotient and remainder?  At least with -Os, that is
probably optimal.  In other words, once we get to:

prop0 = D.1286 % 45;
propsRes->pb = [plus_expr] (propsRes->pb + 1) + (int) (D.1286 / 45);

can we notice that we have both "D.1286 % 45" and "D.1286 / 45" and use the
divmod routine?

Furthermore, if we want to generate the loop instead, are the alternatives
you're considering sufficient to change code like:

  ... x / 45 ...

into the loop form?  In other words, rather than just considering this a
problem of transforming the hand-written loop into a division operation,
shouldn't we also be considering the problem of transforming division into the
loop form?

The style:

  a = x / N;
  b = x % N;

is pretty common; recognizing that pattern and generating a loop, or libcall to
__aeabi_divmod, seems like a good thing.  One could argue that __aeabi_divmod
itself should be responsible for noticing divisors that more profitably use
repeated subtraction than other methods, on CPUs that don't have a hardware
divide instruction.

Do we need a divmod optab?  Or, should we expect that if we provide an
appropriate pattern in the ARM back end, combine will be able to smush the
division and remainder operations together?

I guess where I'm going with this line of thinking is to argue that the
transformation to division is fine, and that we should treat that as canonical
-- but that we need a way to change divisions into repeated divisions if
appropriate.

-- Mark


-- 


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



[Bug c/25314] [4.2/4.3/4.4 Regression] Unreachable code at beginning of switch statement is not reported anymore

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2008-12-11 00:10 ---
Created an attachment (id=16882)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16882&action=view)
proposed patch

Looking for comments in this patch...


-- 


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



[Bug libgcj/10353] [4.2/4.3/4.4 regression] Java testsuite failures

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #31 from rguenth at gcc dot gnu dot org  2008-12-10 23:31 
---
How can this be a regression bug if there's not a single known-to-work
revision?


-- 


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



[Bug libstdc++/38128] FAIL: ext/pb_ds/regression/hash_data_map_rand.cc execution test

2008-12-10 Thread danglin at gcc dot gnu dot org


--- Comment #5 from danglin at gcc dot gnu dot org  2008-12-10 23:27 ---
The bug in the CFI directives turned out to be a GAS bug.  Two patches
were applied to fix the problem (one be Jakub and one by myself).  A
configure test was added to detect broken versions of GAS.


-- 


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



[Bug java/37900] [4.4 Regression] StringBuffer_1 failures

2008-12-10 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2008-12-10 23:20 ---
Fixed as of revision 142637.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug libgcj/10353] [4.2/4.3/4.4 regression] Java testsuite failures

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #30 from steven at gcc dot gnu dot org  2008-12-10 23:18 ---
This one is just dragged along with the Summary changes every time a new GCC is
released.  I'd say WONTFIX for this bug.  Eric, you would "add a blurb about
that in the platform-specific installation notes" (comment #25).  Did that
happen?  What do you, as a SPARC port maintainer, think what should happen with
this bug? 


-- 


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



[Bug libstdc++/17789] [4.2/4.3/4.4 Regression] Cannot 'make check' inside libstdc++-v3

2008-12-10 Thread hjl dot tools at gmail dot com


--- Comment #13 from hjl dot tools at gmail dot com  2008-12-10 23:16 
---
(In reply to comment #12)
> This one is really old.  HJ, do you know if this is still an issue?  What
> happened with your patch?
> 

I don't know. All my machines have libunwind.so.7.


-- 


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



[Bug ada/36939] Build Failure Ada SH2e

2008-12-10 Thread laurent at guerby dot net


--- Comment #10 from laurent at guerby dot net  2008-12-10 23:09 ---
Ok I'll try to come up with a real patch.


-- 

laurent at guerby dot net changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |laurent at guerby dot net
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug java/37900] [4.4 Regression] StringBuffer_1 failures

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-12-10 23:09 ---
Seen in r141389
(http://gcc.gnu.org/ml/gcc-testresults/2008-10/msg01966.html)

Not seen anymore in r141405
(http://gcc.gnu.org/ml/gcc-testresults/2008-10/msg02014.html)

HJ, looks fixed to me...?


-- 


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



[Bug libstdc++/37144] A bug in include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp

2008-12-10 Thread hjl dot tools at gmail dot com


--- Comment #10 from hjl dot tools at gmail dot com  2008-12-10 23:07 
---
(gdb) f 0
#0 
__gnu_pbds::test::detail::container_rand_regression_test<__gnu_pbds::trie<__gnu_pbds::test::basic_type,
__gnu_pbds::test::basic_type,
__gnu_pbds::string_trie_e_access_traits<__gnu_pbds::test::basic_type, (char)97,
(char)100, false, __gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> >,
__gnu_pbds::pat_trie_tag, __gnu_pbds::null_trie_node_update,
__gnu_cxx::throw_allocator<__gnu_pbds::test::basic_type> > >::insert
(this=0x7fffc990)
at
/export/gnu/src/gcc-work/gcc/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc:1086
1086  typename cntnr::const_point_iterator found_it = m_p_c->find(r_k);
(gdb) p/x $rsp
$14 = 0x7fffc710
(gdb) p/x &r_k
$15 = 0x7fffc6c0
(gdb) p &v
$16 = (
std::pair
*) 0x7fffc750
(gdb)  p r_k._M_dataplus._M_p
$17 = 0x7e2d28 "dbcabab"
(gdb) p v.first._M_dataplus._M_p
$18 = 0x7e2d28 "dbcabab"
(gdb) 

r_k references a value on deallocated stack.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC|danglin at gcc dot gnu dot  |
   |org |


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



[Bug middle-end/38474] slow compilation at -O0 (callgraph optimization, inline heuristics, expand )

2008-12-10 Thread jv244 at cam dot ac dot uk


--- Comment #7 from jv244 at cam dot ac dot uk  2008-12-10 22:57 ---
(In reply to comment #6)
> Created an attachment (id=16881)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16881&action=view) [edit]
> memory measurement tool
> 
> Of course!  Try the attached with just
> 
> ~/bin/maxmem2.sh gfortan ...
> 
ugh how intuitive... but very useful. Will try to run it tomorrow.


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread rakdver at gcc dot gnu dot org


--- Comment #58 from rakdver at gcc dot gnu dot org  2008-12-10 22:55 
---
(In reply to comment #56)
> Re. comment #52:
> 
> I've pasted the test case in the audit trail here as plain text -- it's pretty
> small and it shows the problem nicely.  The issue is that with -Os, on all
> targets, the line,
> 
>   propsRes->lc = prop0;
> 
> is replaced with:
> 
>   propsRes->lc = (int) (int) (prop0.24 % 45); // with prop0.24 = propsData[0];
> 
> so there is no div/mod instruction in the original code, but one appears as a
> result of the final value replacement optimization.  With -O2 there is also a
> div instruction, but I am not sure where it comes from (I suspect loop header
> copying, but it's inconsequential for this issue anyway).

actually, the div instruction also comes from the final value replacement.  We
eliminate the loop completely and replace it with the following:

D.1286 = prop0 + 211;
prop0 = D.1286 % 45;
propsRes->pb = [plus_expr] (propsRes->pb + 1) + (int) (D.1286 / 45);


-- 


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



[Bug middle-end/38474] slow compilation at -O0 (callgraph optimization, inline heuristics, expand )

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2008-12-10 22:48 ---
Created an attachment (id=16881)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16881&action=view)
memory measurement tool

Of course!  Try the attached with just

~/bin/maxmem2.sh gfortan ...


-- 


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



[Bug libstdc++/37144] A bug in include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp

2008-12-10 Thread hjl dot tools at gmail dot com


--- Comment #9 from hjl dot tools at gmail dot com  2008-12-10 22:44 ---
testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc has

  value_type v = test_traits::generate_value(m_g, m_m);
  m_alloc.set_throw_prob(m_tp);
  const_key_reference r_k = test_traits::extract_key(v);
  typename cntnr::const_point_iterator found_it = m_p_c->find(r_k);

It looks like test_traits::extract_key returns something on stack
and r_k references a value on deallocated stack.


-- 


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



[Bug middle-end/38446] [graphite] The def for a var exists inside one of the scops bb's but an appropriate phi is not created to allow the phi to reach the use of that def ouside the scop.

2008-12-10 Thread sebpop at gmail dot com


--- Comment #4 from sebpop at gmail dot com  2008-12-10 22:37 ---
Subject: Re:  [graphite] The def for a var exists inside one of the scops bb's
but an appropriate phi is not created to allow the phi to reach the use of that
def ouside the scop.

On Wed, Dec 10, 2008 at 4:34 PM, hjagasia at gcc dot gnu dot org
<[EMAIL PROTECTED]> wrote:
>
>
> --- Comment #3 from hjagasia at gcc dot gnu dot org  2008-12-10 22:34 
> ---
> Created an attachment (id=16880)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16880&action=view)
>  --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16880&action=view)
> Updated patch reviewed by Sebastian

This looks better thanks.  Ok for graphite branch.


-- 


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



Re: [Bug middle-end/38446] [graphite] The def for a var exists inside one of the scops bb's but an appropriate phi is not created to allow the phi to reach the use of that def ouside the scop.

2008-12-10 Thread Sebastian Pop
On Wed, Dec 10, 2008 at 4:34 PM, hjagasia at gcc dot gnu dot org
<[EMAIL PROTECTED]> wrote:
>
>
> --- Comment #3 from hjagasia at gcc dot gnu dot org  2008-12-10 22:34 
> ---
> Created an attachment (id=16880)
>  --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16880&action=view)
> Updated patch reviewed by Sebastian

This looks better thanks.  Ok for graphite branch.


[Bug middle-end/38474] slow compilation at -O0 (callgraph optimization, inline heuristics, expand )

2008-12-10 Thread jv244 at cam dot ac dot uk


--- Comment #5 from jv244 at cam dot ac dot uk  2008-12-10 22:34 ---
(In reply to comment #4)
> Could you capture the memory requirements on the 4.3 branch?

I watched top (for 4.3.1), but can't recall anything more than 3Gb. It's a bit
boring to watch top for 45min any better approach?


-- 


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



[Bug middle-end/38446] [graphite] The def for a var exists inside one of the scops bb's but an appropriate phi is not created to allow the phi to reach the use of that def ouside the scop.

2008-12-10 Thread hjagasia at gcc dot gnu dot org


--- Comment #3 from hjagasia at gcc dot gnu dot org  2008-12-10 22:34 
---
Created an attachment (id=16880)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16880&action=view)
Updated patch reviewed by Sebastian


-- 


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



[Bug middle-end/38431] [graphite] several ICEs with CP2K (summery)

2008-12-10 Thread jv244 at cam dot ac dot uk


--- Comment #7 from jv244 at cam dot ac dot uk  2008-12-10 22:33 ---
with current graphite, i see 4 files failing with -fgraphite
-fgraphite-identity:

lebedev.F, colvar_types.F, qs_linres_nmr_shift.F, constraint_clv.F

I'm assuming that these are all incarnations of PR38461, but can look into more
detail if that's considered useful.


-- 


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



[Bug tree-optimization/31849] [4.3/4.4 Regression] Code size increased with PR 31360 (IV-opts not understanding autoincrement)

2008-12-10 Thread stevenb dot gcc at gmail dot com


--- Comment #44 from stevenb dot gcc at gmail dot com  2008-12-10 22:30 
---
Subject: Re:  [4.3/4.4 Regression] Code size increased with PR 31360 (IV-opts
not understanding autoincrement)

Joern, can you attach the updated patch?


-- 


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



[Bug tree-optimization/36792] [4.4 Regression] Revision 137631 causes many failures

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2008-12-10 22:18 
---
Subject: Bug 36792

Author: rguenth
Date: Wed Dec 10 22:17:05 2008
New Revision: 142662

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142662
Log:
2008-12-10  Richard Guenther  <[EMAIL PROTECTED]>

PR tree-optimization/36792
* tree-ssa-pre.c (compute_avail): Handle tcc_comparison like
tcc_binary.

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


-- 


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



[Bug tree-optimization/36792] [4.4 Regression] Revision 137631 causes many failures

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #15 from rguenth at gcc dot gnu dot org  2008-12-10 22:17 
---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/35319] [4.3/4.4 regression] ICE throwing fixed-point types

2008-12-10 Thread jason at gcc dot gnu dot org


--- Comment #6 from jason at gcc dot gnu dot org  2008-12-10 22:13 ---
Subject: Bug 35319

Author: jason
Date: Wed Dec 10 22:11:44 2008
New Revision: 142661

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142661
Log:
PR c++/35319
* mangle.c (write_builtin_type): Add mangling for decimal floating
point and fixed point types.
(write_type): Pass FIXED_POINT_TYPE along.
* cp-demangle.c (cplus_demangle_type): Support fixed-point types.
(d_print_comp, d_dump): Likewise.

Added:
trunk/gcc/testsuite/g++.dg/ext/fixed2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/mangle.c
trunk/gcc/testsuite/ChangeLog
trunk/include/ChangeLog
trunk/include/demangle.h
trunk/libiberty/ChangeLog
trunk/libiberty/cp-demangle.c


-- 


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



[Bug middle-end/38463] [graphite] double free or corruption

2008-12-10 Thread jv244 at cam dot ac dot uk


--- Comment #4 from jv244 at cam dot ac dot uk  2008-12-10 22:04 ---
(In reply to comment #3)
> Hi, I can not reproduce this Bug on FreeBSD. May be it is just not detected.
> 
> Can you try with current graphite branch to see it was a duplicate of 
> Bug3845384599.
> Otherwise I will have to try it on Linux with valgrind again.
> 

I think it is a dup of PR38459, since it is gone after updating to the current
graphite branch. Great! I'm closing it as fixed.


-- 

jv244 at cam dot ac dot uk changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread rakdver at kam dot mff dot cuni dot cz


--- Comment #57 from rakdver at kam dot mff dot cuni dot cz  2008-12-10 
22:02 ---
Subject: Re:  [4.3/4.4 Regression] final value replacement too aggressive for
e.g. targets with no native div/mod insns

> I think Zdenek is right in comment #54: We should reincarnate
> expression_expensive_p in some form such that it takes into account (or makes 
> a
> reasonable guess about) which instructions are particularly expensive. 
> Apparently, the old cost check was too conservative (it tested the expression
> cost against spill cost, ignoring further optimization opportunities).  So we
> need to test for something else than before.
> 
> Maybe we should not replace if the final value is not a constant?

That is way too conservative (replacing the final values like say "n + 1"
should usually be profitable).

> Or if it is an expression involving div/mod? 

That is what I currently plan to do.

> Can we test somehow how many insns the final
> value replacement computation would take

I think that has the same problems as the original solution (it is
not possible to find a bound that would both prevent expensive things to be
moved out and to allow the non-expensive ones, as the exact costs are
target-specific and we are not estimating them precisely enough).

> (maybe re-use the inliner heuristics)?

That would be difficult, as estimate_num_insns works on gimple
statements, not on expressions.


-- 


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



[Bug testsuite/35677] Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

2008-12-10 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #7 from dave at hiauly1 dot hia dot nrc dot ca  2008-12-10 
22:01 ---
Subject: Re:  Intermitent failure "FAIL:
libgomp.fortran/crayptr2.f90"

On Wed, 10 Dec 2008, howarth at nitro dot med dot uc dot edu wrote:

I need to do some more testing but I believe the attached patch fixes
the failure on hppa*-*-hpux*.

Dave


--- Comment #8 from dave at hiauly1 dot hia dot nrc dot ca  2008-12-10 
22:01 ---
Created an attachment (id=16879)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16879&action=view)


-- 


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #56 from steven at gcc dot gnu dot org  2008-12-10 21:44 ---
Re. comment #52:

I've pasted the test case in the audit trail here as plain text -- it's pretty
small and it shows the problem nicely.  The issue is that with -Os, on all
targets, the line,

  propsRes->lc = prop0;

is replaced with:

  propsRes->lc = (int) (int) (prop0.24 % 45); // with prop0.24 = propsData[0];

so there is no div/mod instruction in the original code, but one appears as a
result of the final value replacement optimization.  With -O2 there is also a
div instruction, but I am not sure where it comes from (I suspect loop header
copying, but it's inconsequential for this issue anyway).

The problem is not that we don't give CSE enough information. The problem is
reported for a GCC 4.3 based compiler, which still has libcall notes.  So at
least in theory, CSE in GCC 4.3 should have all the information available to
optimize away the mod instruction.  Apparently the result is just not
available.

The bottom line, then, is still that the final value replacement has introduced
an operation at the tree level that doesn't have a matching RTL instruction. 
In this case a mod insn that makes gcc produce a libcall to umodsi.

I think Zdenek is right in comment #54: We should reincarnate
expression_expensive_p in some form such that it takes into account (or makes a
reasonable guess about) which instructions are particularly expensive. 
Apparently, the old cost check was too conservative (it tested the expression
cost against spill cost, ignoring further optimization opportunities).  So we
need to test for something else than before.

Maybe we should not replace if the final value is not a constant?  Or if it is
an expression involving div/mod?  Can we test somehow how many insns the final
value replacement computation would take (maybe re-use the inliner heuristics)?


-- 


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



[Bug target/37436] arm-cross-g++. internal compiler error: in extract_insn, at recog.c:1990

2008-12-10 Thread rearnsha at gcc dot gnu dot org


-- 

rearnsha at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P2


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread rakdver at gcc dot gnu dot org


-- 

rakdver at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rakdver at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-12-10 11:42:50 |2008-12-10 21:31:43
   date||


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



[Bug target/37436] arm-cross-g++. internal compiler error: in extract_insn, at recog.c:1990

2008-12-10 Thread rearnsha at gcc dot gnu dot org


-- 

rearnsha at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.0


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread steven at gcc dot gnu dot org


--- Comment #55 from steven at gcc dot gnu dot org  2008-12-10 21:27 ---
// This is the test case from PR38453.
// See comment #0 of that bug for further information:
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38453#c0

typedef struct 
{
  int lc;
  int pb;
} bar;

void foo(bar *propsRes, const unsigned char *propsData)
{
unsigned char prop0;
prop0 = propsData[0];

while (prop0 >= 45) {
propsRes->pb++;
prop0-=45;
}
propsRes->lc = prop0;
}


int main(int argc, char **argv)
{
bar propsRes;
unsigned char propsData[1024];
foo(&propsRes, propsData);
}


-- 


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



fwrite bug in gcc 4.4.0.

2008-12-10 Thread Todd Plessel

2008-12-10
[EMAIL PROTECTED]

The following report demonstrates a bug in fwrite():
when attempting to write 8GB, it silently only writes 3.7GB yet
issues no errors. There is plenty of disk space and free memory.
Platform:
Mac OS X 10.5.5, gcc version 4.4.0, compiled -m64 for 64-bit (x86_64).

/*
fwrite_bug.c - Show bug in fwrite: silently only writes 3.7GB instead of 8GB.
2008-12-10 [EMAIL PROTECTED]
/usr/local/bin/gcc -v -m64 -g -o fwrite_bug fwrite_bug.c
file fwrite_bug
fwrite_bug
ls -l junk
*/

#include  /* For malloc(), free(). */
#include  /* For memset(). */
#include   /* For FILE, printf(), perror(). */

int main( void ) {
  const size_t bytes = 80UL; /* 8GB file. */
  int ok = 0;
  char* array = malloc( bytes );
  printf( "sizeof (size_t) = %lu, bytes = %lu, array = %p\n",
  sizeof (size_t), bytes, array );

  if ( array ) {
FILE* file = fopen( "junk", "wb" );
memset( array, 0, bytes );

if ( file ) {
  const size_t bytes_written = fwrite( array, 1, bytes, file );
  int fclose_result = 0;
  printf( "Bytes written = %lu\n", bytes_written );

  if ( bytes_written == bytes ) {
const int flush_result = fflush( file );
ok = flush_result == 0;
  }

  printf( "ferror = %d\n", ferror( file ) );
  fclose_result = fclose( file );
  ok = ok && fclose_result == 0;
  file = 0;
}

free( array );
array = 0;
  }

  if ( ! ok ) {
perror( "Failed because " );
  }

  return ! ok;
}

$/usr/local/bin/gcc -v -m64 -g -o fwrite_bug fwrite_bug.c
Using built-in specs.
Target: i386-apple-darwin9.4.0
Configured with: ../gcc-4.4-20080801/configure --enable-languages=fortran,c++
Thread model: posix
gcc version 4.4.0 20080801 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.5.5' '-v' '-m64' '-g' '-o'
'fwrite_bug' '-mtune=generic'
 /usr/local/libexec/gcc/i386-apple-darwin9.4.0/4.4.0/cc1 -quiet -v -imultilib
x86_64 -D__DYNAMIC__ fwrite_bug.c -fPIC -feliminate-unused-debug-symbols -quiet
-dumpbase fwrite_bug.c -mmacosx-version-min=10.5.5 -m64 -mtune=generic -auxbase
fwrite_bug -g -version -o /var/tmp//ccbd2VJl.s
ignoring nonexistent directory
"/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/../../../../i386-apple-darwin9.4.0/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/include
 /usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/include-fixed
 /usr/include
 /System/Library/Frameworks
 /Library/Frameworks
End of search list.
GNU C (GCC) version 4.4.0 20080801 (experimental) (i386-apple-darwin9.4.0)
compiled by GNU C version 4.4.0 20080801 (experimental), GMP version
4.2.1, MPFR version 2.2.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: e18605928a7028ba0647a6828b0edd07
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.5.5' '-v' '-m64' '-g' '-o'
'fwrite_bug' '-mtune=generic'
 as -arch x86_64 -force_cpusubtype_ALL -o /var/tmp//ccq6skQ8.o
/var/tmp//ccbd2VJl.s
COMPILER_PATH=/usr/local/libexec/gcc/i386-apple-darwin9.4.0/4.4.0/:/usr/local/libexec/gcc/i386-apple-darwin9.4.0/4.4.0/:/usr/local/libexec/gcc/i386-apple-darwin9.4.0/:/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/:/usr/local/lib/gcc/i386-apple-darwin9.4.0/
LIBRARY_PATH=/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/x86_64/:/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/../../../x86_64/:/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/:/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/../../../:/usr/lib/
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.5.5' '-v' '-m64' '-g' '-o'
'fwrite_bug' '-mtune=generic'
 /usr/local/libexec/gcc/i386-apple-darwin9.4.0/4.4.0/collect2 -dynamic -arch
x86_64 -macosx_version_min 10.5.5 -weak_reference_mismatches non-weak -o
fwrite_bug -lcrt1.10.5.o
-L/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/x86_64
-L/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/../../../x86_64
-L/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0
-L/usr/local/lib/gcc/i386-apple-darwin9.4.0/4.4.0/../../.. /var/tmp//ccq6skQ8.o
-lgcc_s.10.5 -lgcc -lSystem
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.5.5' '-v' '-m64' '-g' '-o'
'fwrite_bug' '-mtune=generic'
 dsymutil fwrite_bug

$file fwrite_bug
fwrite_bug: Mach-O 64-bit executable x86_64
$fwrite_bug
sizeof (size_t) = 8, bytes = 80, array = 0x10020
Bytes written = 80
ferror = 0
$ls -l junk
-rw-rw-r--  1 plessel  staff  3705032704 Dec 10 15:12 junk

Note how the call to fwrite() reports that it wrote 8GB and
fflush() did not fail and ferror() reports no problems and
fclose() did not fail
yet the file is only 3.7GB instead of 8GB!

What is the fix?

[EMAIL PROTECTED]




[Bug middle-end/38446] [graphite] The def for a var exists inside one of the scops bb's but an appropriate phi is not created to allow the phi to reach the use of that def ouside the scop.

2008-12-10 Thread hjagasia at gcc dot gnu dot org


--- Comment #2 from hjagasia at gcc dot gnu dot org  2008-12-10 21:09 
---
Created an attachment (id=16877)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16877&action=view)
This patch fixes PR38446 by explicitly checking if bb belongs to sese region by
looking at all bbs in scop instead of using dominator/post-dominator
information.


-- 


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



[Bug tree-optimization/36792] [4.4 Regression] Revision 137631 causes many failures

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #14 from rguenth at gcc dot gnu dot org  2008-12-10 20:56 
---
Which is not vectorized because PRE doesn't move the invariant

  D.2067_11 = a_9(D) == b_10(D);

out of the loop.  If you make LIM do it (--param lim-expensive=1) the loop
is vectorized again.

I have a patch.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|REOPENED|ASSIGNED
   Last reconfirmed|2008-07-10 14:59:59 |2008-12-10 20:56:16
   date||


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



[Bug tree-optimization/36792] [4.4 Regression] Revision 137631 causes many failures

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #13 from rguenth at gcc dot gnu dot org  2008-12-10 20:38 
---
All fixed now apart from

FAIL: gcc.dg/vect/vect-67.c scan-tree-dump-times vect "vectorized 1 loops" 1


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|xfail   |


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



[Bug testsuite/29071] gcc.dg/20020919-1.c compilation test fails on powerpc-apple-darwin8 at -m64

2008-12-10 Thread dominiq at lps dot ens dot fr


--- Comment #8 from dominiq at lps dot ens dot fr  2008-12-10 20:31 ---
PING! see comment #5.


-- 


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



[Bug tree-optimization/36792] [4.4 Regression] Revision 137631 causes many failures

2008-12-10 Thread dberlin at gcc dot gnu dot org


--- Comment #12 from dberlin at gcc dot gnu dot org  2008-12-10 20:15 
---
Subject: Bug 36792

Author: dberlin
Date: Wed Dec 10 20:13:39 2008
New Revision: 142659

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142659
Log:
2008-12-10  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/36792
* tree-ssa-pre.c (compute_avail): Don't insert defs into maximal
set.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-10.c
trunk/gcc/tree-ssa-pre.c


-- 


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



[Bug fortran/35937] Wrong type for charlength of function

2008-12-10 Thread dominiq at lps dot ens dot fr


--- Comment #15 from dominiq at lps dot ens dot fr  2008-12-10 19:15 ---
No regression also on powerpc-apple-darwin9 (patch in comment#4).

If I understand the two proposed patches, the only difference is that the FX's
one create a temporary if CONSTANT_CLASS_P (se.expr) is not true. Is this
really necessary? For what "se.expr" will CONSTANT_CLASS_P return false?


-- 

dominiq at lps dot ens dot fr changed:

   What|Removed |Added

 CC||pault at gcc dot gnu dot org


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



[Bug ada/36939] Build Failure Ada SH2e

2008-12-10 Thread joel at gcc dot gnu dot org


--- Comment #9 from joel at gcc dot gnu dot org  2008-12-10 19:14 ---
ACATS look surprisingly good with the fix in:

http://gcc.gnu.org/ml/gcc-testresults/2008-12/msg01013.html

sh-rtems4.10-gcc (GCC) 4.4.0 20081210 (experimental) [trunk revision 142643]

=== acats Summary ===
# of expected passes 2307
# of unexpected failures 5
# of unsupported tests 3

ce2108f - simulator does not have persistent files
ce2108h - simulator does not have persistent files
ce3112d - simulator does not have persistent files
c380004 c953002 c974013 cxg2018 cxg2021 were
  Memory exception at 44000 (illegal address) the
  last time I checked on them according to my notes.

=== Logs for failed tests ==


-- 


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



[Bug tree-optimization/38478] [4.3 Regression] incorrect results for polynomial evaluation with optimisation/inline functions

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2008-12-10 18:43 ---
Fixed for 4.3.3.  (and dup of PR38051)

*** This bug has been marked as a duplicate of 38051 ***


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/38051] [4.4 Regression] Miscompilation of glibc's memcmp

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2008-12-10 18:43 
---
*** Bug 38478 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||bjg at gnu dot org


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



[Bug tree-optimization/38478] [4.3 Regression] incorrect results for polynomial evaluation with optimisation/inline functions

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-12-10 18:44 ---
Subject: Bug 38478

Author: rguenth
Date: Wed Dec 10 18:42:36 2008
New Revision: 142655

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142655
Log:
2008-12-10  Richard Guenther  <[EMAIL PROTECTED]>

Backport from trunk the fix for PR38051.

PR tree-optimization/38478
* tree-ssa-structalias.c (update_alias_info): Manually find
written variables.

Modified:
branches/gcc-4_3-branch/gcc/ChangeLog
branches/gcc-4_3-branch/gcc/tree-ssa-structalias.c


-- 


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



[Bug tree-optimization/38478] [4.3 Regression] incorrect results for polynomial evaluation with optimisation/inline functions

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-12-10 18:35 ---
This looks the same as PR37868 (or more specifically it matches PR38048, a dup
of that).  Indeed, on the branch with -O2 it works.  But it seems to be still
broken with -O --param max-fields-for-field-sensitive=100 (but we shouldn't
care too much about that - this setting may be broken anyway).

optimized dump difference reveals that we remove initializations over-eagerly:

 :
-  c[0] = 1.0e+0;
-  c[1] = 5.0e-1;
-  c[2] = 2.99988897769753748434595763683319092e-1;
-  D.3671 = (c[1] + 1.49994448884876874217297881841659546e-1) *
5.0e
-1;
-  gsl_test_rel (c[0] + D.3671,
1.3249555910790149937383830547332763
7e+0, 2.220446049250313080847263336181640625e-14, &"gsl_poly_eval({1, 0.5,
0.3},
 0.5)"[0]);
+  D.3656 = (c[1] + 1.49994448884876874217297881841659546e-1) *
5.0e-1;
+  gsl_test_rel (c[0] + D.3656,
1.32495559107901499373838305473327637e+0,
2.220446049250313080847263336181640625e-14, &"gsl_poly_eval({1, 0.5, 0.3},
0.5)"[0]);

so, this may be related to PR38051 / PR38169.  I'm checking the backport
I have around.  Yup, that fixes it fully.  Mine.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-12-10 18:35:39
   date||


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



[Bug fortran/38471] [4.3/4.4 Regression] ICE with subreference pointer where pointer is a DUMMY argument

2008-12-10 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2008-12-10 18:25 ---
OK. I found it, though I'm not sure yet how to solve it best (maybe something
else needs to be moved up as well?) - and I won't have time to work on this the
next day(s?).

gfc_get_symbol_decl (gfc_symbol * sym)
[...]
  if ((sym->attr.dummy && ! sym->attr.function) || (sym->attr.result && byref))
{
  // We enter here as the POINTER is a DUMMY
  [...]
  return sym->backend_decl;
}
[...]
  if (sym->attr.subref_array_pointer)
{
  tree span;


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.3/4.4 Regression] ICE|[4.3/4.4 Regression] ICE
   |with subreference pointer   |with subreference pointer
   ||where pointer is a DUMMY
   ||argument


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread rakdver at kam dot mff dot cuni dot cz


--- Comment #54 from rakdver at kam dot mff dot cuni dot cz  2008-12-10 
18:23 ---
Subject: Re:  [4.3/4.4 Regression] final value replacement too aggressive for
e.g. targets with no native div/mod insns

> Zdenek, it would certainly be helpful to have the original justification for
> your change available.

Unfortunately, I do not remember the exact problems (it is almost two
years since that change was made).  Adding back expression_expensive_p
in some conservative form (e.g., checking that the computation involves
division, perhaps excluding divisions by a power of two) seems like
the easiest way to fix this problem now.


-- 


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



[Bug tree-optimization/38478] [4.3 Regression] incorrect results for polynomial evaluation with optimisation/inline functions

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-12-10 18:14 ---
field-sensitive PTA is the trigger.  Fails also at -O --param
max-fields-for-field-sensitive=100.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
  Component|regression  |tree-optimization
   Keywords||wrong-code
  Known to fail||4.3.2
  Known to work||4.2.4 4.4.0
Summary|incorrect results for   |[4.3 Regression] incorrect
   |polynomial evaluation with  |results for polynomial
   |optimisation/inline |evaluation with
   |functions   |optimisation/inline
   ||functions
   Target Milestone|--- |4.3.3


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



[Bug tree-optimization/32044] [4.3/4.4 Regression] final value replacement too aggressive for e.g. targets with no native div/mod insns

2008-12-10 Thread rakdver at kam dot mff dot cuni dot cz


--- Comment #53 from rakdver at kam dot mff dot cuni dot cz  2008-12-10 
18:15 ---
Subject: Re:  [4.3/4.4 regression] udivdi3 counterproductive, unwarranted use

Hi,

> Re. comment #16:
> Zdenek, do you remember which revision / patch removed the cost check?

rev. 122896

> And do
> you recall (or can you recover) some of the missed-optimization bug report
> numbers?  I tried to find them with a Bugzilla query, but failed.

No; the PRs addressed by that patch seem unrelated.


-- 


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



[Bug testsuite/35677] Intermitent failure "FAIL: libgomp.fortran/crayptr2.f90"

2008-12-10 Thread danglin at gcc dot gnu dot org


--- Comment #6 from danglin at gcc dot gnu dot org  2008-12-10 18:10 ---
On hppa64, I see a "random" segfault in crayptr2.f90 compiled at -O0:

(gdb) r
Starting program:
/mnt/gnu/gcc/objdir/hppa64-hp-hpux11.11/libgomp/testsuite/crayptr2.xg0 
warning: Private mapping of shared library text was not specified
by the executable; setting a breakpoint in a shared library which
is not privately mapped will not work.  See the HP-UX 11i v3 chatr
manpage for methods to privately map shared library text.
warning: Loadable segment ".tbss" outside of ELF segments
warning: Loadable segment ".tbss" outside of ELF segments
warning: Loadable segment ".tbss" outside of ELF segments
[New process 28502, lwp 2270431]
[process 28502, lwp 2270431 exited]
[New process 28502, lwp 2270432]
[process 28502, lwp 2270432 exited]
[New process 28502, lwp 2270433]
[process 28502, lwp 2270433 exited]
[New process 28502, lwp 2270434]
[New process 28502, lwp 2270435]
[New process 28502, lwp 2270436]

Program received signal SIGSEGV, Segmentation fault.
[Switching to process 28502, lwp 2270435]
0x40002d08 in MAIN__.omp_fn.0 (.omp_data_i=Cannot access memory at
address 0x0
)
at /mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/crayptr2.f90:23
23l = p .ne. omp_get_thread_num () + 1
Current language:  auto; currently fortran
(gdb) p/x $pc
$1 = 0x40002d08
(gdb) disass 0x40002cf8 0x40002d18
Dump of assembler code from 0x40002cf8 to 0x40002d18:
0x40002cf8 :   b,l 0x40002b2c
<.stub+60>,rp
0x40002cfc :   nop
0x40002d00 :   copy r4,dp
0x40002d04 :   ldd 0(ret0),ret0
0x40002d08 :   ldw 0(ret0),ret0
0x40002d0c :   extrd,s ret0,63,32,ret0
0x40002d10 :   stw r0,18(r3)
0x40002d14 :   cmpb,=,n
ret0,r5,0x40002d20 
End of assembler dump.
(gdb) p/x $ret0
$2 = 0x0

This results from the code loading indirectly data with a the pointer
returned from a call to __emutls_get_address:

addil LT'__emutls_v.ip.565,%r27
copy %r1,%r28
ldd RT'__emutls_v.ip.565(%r28),%r28
copy %r28,%r26
ldo -48(%r30),%r29
copy %r27,%r4
b,l __emutls_get_address,%r2
nop
copy %r4,%r27
ldd 0(%r28),%r28
ldw 0(%r28),%r28

Is darwin also using EMUTLS?


-- 


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



[Bug fortran/38471] [4.3/4.4 Regression] ICE with subreference pointer

2008-12-10 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2008-12-10 18:08 ---
Paul, do you have an idea?

span is set in trans-decl.c's gfc_get_symbol_decl:

  if (sym->attr.subref_array_pointer)
{
  [...]
  GFC_DECL_SPAN (decl) = span;

I wondered whether in gfc_check_pointer_assign the attr.subref_array_pointer is
set, but I indeed see:
(gdb) p lvalue->symtree->n.sym->attr.subref_array_pointer
$7 = 1


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pault at gcc dot gnu dot org
Summary|[4.3/4.4 Regression] ICE on |[4.3/4.4 Regression] ICE
   |pointer assignment of nested|with subreference pointer
   |derived-type component  |


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



[Bug c/38481] New: Add attribute for custom sentinels

2008-12-10 Thread gnu at behdad dot org
Would be useful to have the sentinel attribute functionalities but for things
other than a NULL pointer.  Something like:

  __attribute__(sentinel_custom((int*) -1))


-- 
   Summary: Add attribute for custom sentinels
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gnu at behdad dot org


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



[Bug ada/36939] Build Failure Ada SH2e

2008-12-10 Thread joel at gcc dot gnu dot org


--- Comment #8 from joel at gcc dot gnu dot org  2008-12-10 18:08 ---
Created an attachment (id=16876)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16876&action=view)
working s-scaval.adb

Not much.  Just an empty version of s-scaval.adb that lets the build proceed
past this point.  I also had to remove the with/use statement.  Otherwise an
obvious change per your suggestion.

Build completed successfully.  Now try to running ACATS.


-- 


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



[Bug c/38480] New: bogus warning with -O3 -Wall: "array subscript is above array bounds"

2008-12-10 Thread helmert at informatik dot uni-freiburg dot de
# gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.2-1'
--with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3
--program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug
--enable-objc-gc --enable-mpfr --enable-targets=all --enable-cld
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.3.2 (Debian 4.3.2-1) 


Bug 37861 looks related, but I'm not sure if the fix is the same; if so, this
can be marked as a duplicate.


Here is the code (foo.c):


unsigned short foobar;

int array[100];

void g(unsigned short j) {
  if (j < 100)
array[j]++;
}

void f() {
  int i = foobar;
  if (i >= 100)
g(foobar);
}


And here is the gcc call and output:

# gcc -O3 -Wall -c foo.c
foo.c: In function ‘f’:
foo.c:7: warning: array subscript is above array bounds
foo.c:7: warning: array subscript is above array bounds


Since j is unsigned and the array access only occurs for j < 100, this can
never be out of bounds. The warning message is also somewhat fragile; e.g. it
disappears with any of the following changes:

1. Declaring foobar as volatile.
2. Replacing "if (i >= 100)" by "if (foobar >= 100)"
3. Replacing either of the unsigned shorts by an int or short.
4. Removing the call to g.


-- 
   Summary: bogus warning with -O3 -Wall: "array subscript is above
array bounds"
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: helmert at informatik dot uni-freiburg dot de


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



[Bug c/38479] New: Incorrect dwarf generated for function with parameters greater 4 words in length

2008-12-10 Thread je at rowley dot co dot uk
The following code:


int foo(int p1, int p2, int p3, long long int p4)
{
  return 0;
}


Compiled with:


arm-unknown-elf-gcc -c -g foo.c

Using built-in specs.
Target: arm-unknown-elf
Configured with: /home/products/build/gcc/gnu-4.3.2/sources/gcc-4.3.2/configure
--build i686-pc-linux-gnu --host i686-pc-linux-gnu --target arm-unknown-elf
--prefix=/home/products/build/gcc/gnu-4.3.2/i686-pc-linux-gnu/install
--enable-languages=c++,c
--with-gmp=/home/products/build/gcc/gnu-4.3.2/i686-pc-linux-gnu/install
--with-mpfr=/home/products/build/gcc/gnu-4.3.2/i686-pc-linux-gnu/install
--with-included-gettext
Thread model: single
gcc version 4.3.2 (GCC)


Generates the following:


foo.o: file format elf32-littlearm

Disassembly of section .text:

 :
   0:   e1a0c00dmov ip, sp
   4:   e24dd004sub sp, sp, #4  ; 0x4
   8:   e92dd800push{fp, ip, lr, pc}
   c:   e24cb008sub fp, ip, #8  ; 0x8
  10:   e24dd00csub sp, sp, #12 ; 0xc
  14:   e50b0010str r0, [fp, #-16]
  18:   e50b1014str r1, [fp, #-20]
  1c:   e50b2018str r2, [fp, #-24]
  20:   e58b3004str r3, [fp, #4]
  24:   e3a03000mov r3, #0  ; 0x0
  28:   e1a3mov r0, r3
  2c:   e24bd00csub sp, fp, #12 ; 0xc
  30:   e89da800ldm sp, {fp, sp, pc}

Contents of the .debug_abbrev section:

  Number TAG
   1  DW_TAG_compile_unit[has children]
DW_AT_producer DW_FORM_strp
DW_AT_language DW_FORM_data1
DW_AT_name DW_FORM_strp
DW_AT_comp_dir DW_FORM_strp
DW_AT_low_pc   DW_FORM_addr
DW_AT_high_pc  DW_FORM_addr
DW_AT_stmt_listDW_FORM_data4
   2  DW_TAG_subprogram[has children]
DW_AT_external DW_FORM_flag
DW_AT_name DW_FORM_string
DW_AT_decl_fileDW_FORM_data1
DW_AT_decl_lineDW_FORM_data1
DW_AT_prototyped   DW_FORM_flag
DW_AT_type DW_FORM_ref4
DW_AT_low_pc   DW_FORM_addr
DW_AT_high_pc  DW_FORM_addr
DW_AT_frame_base   DW_FORM_data4
DW_AT_sibling  DW_FORM_ref4
   3  DW_TAG_formal_parameter[no children]
DW_AT_name DW_FORM_string
DW_AT_decl_fileDW_FORM_data1
DW_AT_decl_lineDW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_location DW_FORM_block1
   4  DW_TAG_base_type[no children]
DW_AT_byte_sizeDW_FORM_data1
DW_AT_encoding DW_FORM_data1
DW_AT_name DW_FORM_string
   5  DW_TAG_base_type[no children]
DW_AT_byte_sizeDW_FORM_data1
DW_AT_encoding DW_FORM_data1
DW_AT_name DW_FORM_strp

The section .debug_info contains:

  Compilation Unit @ offset 0x0:
   Length:0x82 (32-bit)
   Version:   2
   Abbrev Offset: 0
   Pointer Size:  4
 <0>: Abbrev Number: 1 (DW_TAG_compile_unit)
< c>   DW_AT_producer: (indirect string, offset: 0x17): GNU C 4.3.2
<10>   DW_AT_language: 1(ANSI C)
<11>   DW_AT_name: (indirect string, offset: 0x31): foo.c
<15>   DW_AT_comp_dir: (indirect string, offset: 0x0):
/home/products/tmp/gcc
<19>   DW_AT_low_pc  : 0x0
<1d>   DW_AT_high_pc : 0x34
<21>   DW_AT_stmt_list   : 0x0
 <1><25>: Abbrev Number: 2 (DW_TAG_subprogram)
<26>   DW_AT_external: 1
<27>   DW_AT_name: foo
<2b>   DW_AT_decl_file   : 1
<2c>   DW_AT_decl_line   : 2
<2d>   DW_AT_prototyped  : 1
<2e>   DW_AT_type: <0x77>
<32>   DW_AT_low_pc  : 0x0
<36>   DW_AT_high_pc : 0x34
<3a>   DW_AT_frame_base  : 0x0  (location list)
<3e>   DW_AT_sibling : <0x77>
 <2><42>: Abbrev Number: 3 (DW_TAG_formal_parameter)
<43>   DW_AT_name: p1
<46>   DW_AT_decl_file   : 1
<47>   DW_AT_decl_line   : 1
<48>   DW_AT_type: <0x77>
<4c>   DW_AT_location: 2 byte block: 91 6c  (DW_OP_fbreg: -20)
 <2><4f>: Abbrev Number: 3 (DW_TAG_formal_parameter)
<50>   DW_AT_name: p2
<53>   DW_AT_decl_file   : 1
<54>   DW_AT_decl_line   : 1
<55>   DW_AT_type: <0x77>
<59>   DW_AT_location: 2 byte block: 91 68  (DW_OP_fbreg: -24)
 <2><5c>: Abbrev Number: 3 (DW_TAG_formal_parameter)
<5d>   DW_AT_name: p3
<60>   DW_AT_decl_file   : 1
<61>   DW_AT_decl_line   : 1
<62>   DW_AT_type: <0x77>
<66>   DW_AT_location: 2 byte block: 91 64  (DW_OP_fbreg: -28)
 <2><69>: Abbrev Number: 3 (DW_TAG_formal_parameter)
<6a>   DW_AT_name: p4
<6d>   DW_AT_decl_file   : 1
<6e>   DW_AT_decl_line   : 1
<6f>   DW_AT_type: <0x7e>
<73>   DW_AT_location: 2 byte block: 91 0   (DW_OP_fbreg: 0)
 <1><77>: Abbrev Number: 4 (DW_TAG_base_type)
<78>   DW_AT_byte_size   : 4
<79>   DW_AT_encoding: 5(signed)
<7a>   DW_AT_name: int
 <1><7e>: Abbrev Number: 5 (DW_TAG_base_type)
<7f>   DW_AT_b

[Bug tree-optimization/38458] copy-propagation doesn't handle cycles

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-12-10 17:53 ---
Subject: Bug 38458

Author: rguenth
Date: Wed Dec 10 17:51:52 2008
New Revision: 142654

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142654
Log:
2008-12-10  Richard Guenther  <[EMAIL PROTECTED]>

PR tree-optimization/38458
* tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
argument use the arguments copy-of value.

Modified:
branches/alias-improvements/gcc/ChangeLog.alias
branches/alias-improvements/gcc/tree-ssa-copy.c


-- 


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



[Bug libstdc++/38477] [strict-aliasing] warning message contains compiler-generated symbols

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-12-10 17:44 ---
The relevant path through the CFG is

  struct test ctx;

:
  # ctx_108 = VDEF 
  # SMT.120_109 = VDEF 
  # SMT.121_110 = VDEF 
  # SMT.122_111 = VDEF 
  # SMT.123_112 = VDEF 
  __comp_ctor  (&ctx);
  # VUSE 
  D.10437_5 = ci_1(D)->_M_node;
  D.10438_6 = (struct _List_node *) D.10437_5;
  # VUSE 
  D.10494_9 = ctx.foo._M_t._M_impl._M_header._M_parent;
  __y_10 = (struct _Rb_tree_node *) D.10494_9;
  __y_12 = (struct _Rb_tree_node *) &ctx.foo._M_t._M_impl._M_header;
...

:
  # __y_21 = PHI <__y_56(6), __y_12(2)>
...

:
  D.10504_36 = &__y_21->D.9518;
...

...
:
  __x.13_77 = (const struct _Rb_tree_node *) D.10504_36;
  # VUSE 
  D.11044_78 = D.10438_6->_M_data.pair_ptr;
  # VUSE 
  D.11045_79 = __x.13_77->_M_value_field.pair_ptr;


(it's not clear to me what &__y_21->D.9518 accesses - this seems to be a
magic, anonymous thing.  The constraints tell me its at offset zero though.)


-- 


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



[Bug middle-end/38459] [graphite] SEGFAULT in cloog_clast_create

2008-12-10 Thread grosser at gcc dot gnu dot org


--- Comment #11 from grosser at gcc dot gnu dot org  2008-12-10 17:36 
---
The last commit fixed that bug


-- 

grosser at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38463] [graphite] double free or corruption

2008-12-10 Thread grosser at gcc dot gnu dot org


--- Comment #3 from grosser at gcc dot gnu dot org  2008-12-10 17:39 ---
Hi, I can not reproduce this Bug on FreeBSD. May be it is just not detected.

Can you try with current graphite branch to see it was a duplicate of Bug38459.
Otherwise I will have to try it on Linux with valgrind again.


-- 


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



[Bug libstdc++/38477] [strict-aliasing] warning message contains compiler-generated symbols

2008-12-10 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-12-10 17:37 ---
Note that the reason the diagnostic happens is either a bug in libstdc++ or
the points-to solver or the TBAA pruning in the points-to solver.

In the end we access the object 'ctx' via a pointer of type
const struct _Rb_tree_node *.  So the question is if anywhere in 'ctx' there
is such a struct.

It seems to access the _M_t._M_impl._M_header field which is a
_Rb_tree_node_base
but I cannot see a _Rb_tree_node object in it.  Instead _Rb_tree_node is
derived
from _Rb_tree_node_base and adds a _M_value_field.  But accessing this via
this path in

struct _Rb_tree_impl : public _Node_allocator
{
  _Key_compare  _M_key_compare;
  _Rb_tree_node_base_M_header;
  size_type _M_node_count;

certainly violates aliasing rules.  I do not see what _Rb_tree_impl::_S_value
wants to access.  There seems to be nothing there?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c++ |libstdc++
   Keywords||diagnostic


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



[Bug target/37033] [4.4 Regression] Revision 138733 breaks -g vs -g0 for PCH

2008-12-10 Thread aoliva at gcc dot gnu dot org


--- Comment #12 from aoliva at gcc dot gnu dot org  2008-12-10 17:31 ---
Fixed.


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu dot
   ||org
 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38271] [4.4 Regression] Spurious / missing "... used uninitialized in this function" warning

2008-12-10 Thread aoliva at gcc dot gnu dot org


--- Comment #10 from aoliva at gcc dot gnu dot org  2008-12-10 17:30 ---
Fixed.


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38459] [graphite] SEGFAULT in cloog_clast_create

2008-12-10 Thread grosser at gcc dot gnu dot org


--- Comment #10 from grosser at gcc dot gnu dot org  2008-12-10 17:35 
---
Subject: Bug 38459

Author: grosser
Date: Wed Dec 10 17:33:58 2008
New Revision: 142653

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142653
Log:
2008-12-10  Tobias Grosser  <[EMAIL PROTECTED]>

PR middle-end/38459
* graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
(param_index): Assert if parameter is not know after parameter
detection.
(find_params_in_bb): Detect params directly in GBB_CONDITIONS.
(find_scop_parameters): Mark, that we have finished parameter
detection.
(graphite_transform_loops): Move condition detection before parameter
detection.
* graphite.h (struct scop): Add SCOP_ADD_PARAMS.
* testsuite/gfortran.dg/graphite/pr38459.f90: New.

Added:
branches/graphite/gcc/testsuite/gfortran.dg/graphite/pr38459.f90
Modified:
branches/graphite/gcc/ChangeLog.graphite
branches/graphite/gcc/graphite.c
branches/graphite/gcc/graphite.h


-- 


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



[Bug target/37033] [4.4 Regression] Revision 138733 breaks -g vs -g0 for PCH

2008-12-10 Thread aoliva at gcc dot gnu dot org


--- Comment #13 from aoliva at gcc dot gnu dot org  2008-12-10 17:32 ---
Subject: Bug 37033

Author: aoliva
Date: Wed Dec 10 17:31:07 2008
New Revision: 142652

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142652
Log:
gcc/ChangeLog:
PR target/37033
* dwarf2out.c (saved_do_cfi_asm): New.
(dwarf2out_do_frame): Take it into account.
(dwarf2out_d_cfi_asm): Likewise.  Set it when appropriate.
libcpp/ChangeLog:
PR target/37033
* pch.c (cpp_valid_state): Improve message for poisoned symbols.
Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/libcpp/ChangeLog
trunk/libcpp/pch.c


-- 


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



[Bug regression/38478] incorrect results for polynomial evaluation with optimisation/inline functions

2008-12-10 Thread bjg at gnu dot org


--- Comment #1 from bjg at gnu dot org  2008-12-10 17:22 ---
Created an attachment (id=16875)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16875&action=view)
example program (preprocessed)


-- 


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



[Bug middle-end/38271] [4.4 Regression] Spurious / missing "... used uninitialized in this function" warning

2008-12-10 Thread aoliva at gcc dot gnu dot org


--- Comment #9 from aoliva at gcc dot gnu dot org  2008-12-10 17:22 ---
Subject: Bug 38271

Author: aoliva
Date: Wed Dec 10 17:20:50 2008
New Revision: 142651

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142651
Log:
gcc/ChangeLog:
PR middle-end/38271
* tree-sra.c (sra_build_bf_assignment): Avoid warnings for
variables initialized from SRAed bit fields.
gcc/testsuite/ChangeLog:
PR middle-end/38271
* gcc.dg/torture/pr38271.c: New.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr38271.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-sra.c


-- 


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



[Bug regression/38478] New: incorrect results for polynomial evaluation with optimisation/inline functions

2008-12-10 Thread bjg at gnu dot org
The attached program produces incorrect results in gcc-4.3.2 with -O2. (The
results are correct at -O0 when inline functions are not used).

The code evaluates a complex polynomial in Horner form via an inline function.
It is part of the test suite of gsl-1.11 (GNU Scientific Library).  I have
examined the code and believe it is numerically correct.  For comparison, the
problem does not occur in gcc-4.3.0.

$ /opt/gcc-4.3.2/bin/gcc -v  
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /home/bjg/ftp/gcc-4.3.2/configure --prefix=/opt/gcc-4.3.2
Thread model: posix
gcc version 4.3.2 (GCC) 

$ /opt/gcc-4.3.2/bin/gcc -O0 -Wall testcase.c 
$ ./a.out 
Completed [10/10]

$ /opt/gcc-4.3.2/bin/gcc -O2 -Wall testcase.c
$ ./a.out 
FAIL: y.real, gsl_complex_poly_complex_eval ({-2.31 + 0.44i, 4.21 - 3.19i, 0.93
+ 1.04i, -0.42 + 0.68i}, 0.49 + 0.95i) (-2.31005 observed vs
1.824620127 expected) [9]
FAIL: y.imag, gsl_complex_poly_complex_eval ({-2.31 + 0.44i, 4.21 - 3.19i, 0.93
+ 1.04i, -0.42 + 0.68i}, 0.49 + 0.95i) (0.440002 observed vs
2.3038941199982 expected) [10]


-- 
   Summary: incorrect results for polynomial evaluation with
optimisation/inline functions
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bjg at gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c++/38477] New: [strict-aliasing] warning message contains compiler-generated symbols

2008-12-10 Thread dimhen at gmail dot com
[EMAIL PROTECTED] gcc_err]# g++ -Wall -c -O3 test.cpp
test.cpp: In member function 'void
test::bar(std::_List_iterator >&)':
test.cpp:14: warning: dereferencing pointer '__x.13' does break
strict-aliasing rules
/usr/local/gcc_current/lib/gcc/i686-pc-linux-gnu/4.4.0/include/c++/bits/stl_tree.h:530:
note: initialized from here
test.cpp:14: warning: dereferencing pointer '__x.13' does break
strict-aliasing rules
/usr/local/gcc_current/lib/gcc/i686-pc-linux-gnu/4.4.0/include/c++/bits/stl_tree.h:530:
note: initialized from here

[EMAIL PROTECTED] gcc_err]# g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++ :
(reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion : (reconfigured) ../gcc_current/configure
--prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix
--enable-checking=release --enable-__cxa_atexit
--enable-version-specific-runtime-libs --enable-languages=c,c++
--no-create --no-recursion
Thread model: posix
gcc version 4.4.0 20081210 (experimental) [trunk revision 142645] (GCC)

[EMAIL PROTECTED] gcc_err]# uname -a
Linux localhost.localdomain 2.6.26.6-49.fc8 #1 SMP Fri Oct 17 15:59:36
EDT 2008 i686 i686 i386 GNU/Linux

[EMAIL PROTECTED] gcc_err]# cat test.cpp
#include 
#include 

template
class KeyPairPtr
{
public:
   typedef typename std::pair< const Key, Info > Pair;
   Pair *pair_ptr;
};

template
bool operator <( const KeyPairPtr &left, const
KeyPairPtr &right ) {
   return left.pair_ptr < right.pair_ptr;
}

typedef KeyPairPtr key_val;

class test
{
   test();
   void bar( std::list::iterator &ci );

   std::set foo;
};

void test::bar( std::list::iterator &ci )
{
   test ctx;
   ctx.foo.insert( *ci );
}


-- 
   Summary: [strict-aliasing] warning message contains compiler-
generated symbols
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dimhen at gmail dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



  1   2   >