Steven Bosscher [Tue, 18 May 2010 14:13:10 +0000 (14:13 +0000)]
fix broken checkin, test should be link not assemble
From-SVN: r159533
Steven Bosscher [Tue, 18 May 2010 13:51:50 +0000 (13:51 +0000)]
re PR lto/44184 ("asm goto" does not work with LTO)
gcc/
PR lto/44184
* lto-streamer-out.c (output_gimple_stmt): Output number of labels
in a GIMPLE_ASM.
* lto-streamer-in.c (input_gimple_stmt): Read number of labels
in a GIMPLE_ASM.
testsuite/
PR lto/44184
* gcc.dg/lto/20100518_0.c: New test.
From-SVN: r159531
Jakub Jelinek [Tue, 18 May 2010 09:35:52 +0000 (11:35 +0200)]
re PR debug/41371 (var-tracking is slow and memory hungry)
PR debug/41371
* var-tracking.c (find_loc_in_1pdv): Add a few checks from
rtx_equal_p inline.
From-SVN: r159528
Steven Bosscher [Tue, 18 May 2010 08:12:56 +0000 (08:12 +0000)]
add lto to powerpc-*darwin and enable for 32bit darwin
Steven Bosscher <steven@gcc.gnu.org>
ChangeLog:
* configure.ac (--enable-lto): All *-apple-darwin* now support LTO.
* configure: Regenerate.
gcc/ChangeLog:
* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
lto-macho as lto_binary_reader.
* darwin.c (darwin_asm_named_section): Do not add assembler comment
after .section directive; just print it before the directive instead.
M gcc/config.gcc
M gcc/config/darwin.c
M ChangeLog
M gcc/ChangeLog
From-SVN: r159527
Eric Botcazou [Tue, 18 May 2010 07:10:11 +0000 (07:10 +0000)]
* gnat.dg/specs/lto3.ads: Add missing dg-options.
From-SVN: r159525
GCC Administrator [Tue, 18 May 2010 00:17:30 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r159523
Jan Hubicka [Mon, 17 May 2010 23:12:14 +0000 (01:12 +0200)]
cgraph.c (cgraph_create_virtual_clone): Only check versionable_function_p when not in wpa and checking is enabled.
* cgraph.c (cgraph_create_virtual_clone): Only check
versionable_function_p when not in wpa and checking is enabled.
* cgrpahunit.c (cgraph_materialize_all_clones): Stabilize after
there are no more functions to materialize.
* lto/lto.c (lto_1_to_1_map): Partition non-inline clones.
(lto_promote_cross_file_statics): Deal with non-inline clones.
From-SVN: r159518
Jan Hubicka [Mon, 17 May 2010 23:02:47 +0000 (01:02 +0200)]
cgraph.h (struct ipa_replace_map): Add parm_num parameter.
* cgraph.h (struct ipa_replace_map): Add parm_num parameter.
* lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
New functions.
(output_cgraph): Call output_cgraph_opt_summary.
(input_cgrpah): Call input_cgraph_opt_summary.
(output_cgraph_opt_summary_p, output_node_opt_summary,
input_node_opt_summary, input_cgraph_opt_section): New functions.
* lto-section-in.c (lto_section_name): Add cgraphopt.
* tree-inline.c (tree_function_versioning): Handle parm_num.
* lto-streamer.c (lto_get_section_name): Handle cgraphopt.
* lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
From-SVN: r159517
Jan Hubicka [Mon, 17 May 2010 22:42:02 +0000 (00:42 +0200)]
lto.c (lto_materialize_function): Announce function when reading body...
* lto.c (lto_materialize_function): Announce function when
reading body; allocate_struct_function only when reading body;
do not finalize local statics; ggc_collect after reading;
do not mark reachable node.
(materialize_cgraph): Do not announce function.
From-SVN: r159516
Changpeng Fang [Mon, 17 May 2010 22:34:03 +0000 (22:34 +0000)]
Also apply the insn to prefetch ratio heuristic to loops with known trip count.
2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
* doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
* tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
the insn to prefetch ratio heuristic to loops with known trip count.
From-SVN: r159515
Changpeng Fang [Mon, 17 May 2010 22:33:53 +0000 (22:33 +0000)]
Define PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO heuristic.
2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
* tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
(schedule_prefetches): Do not generate a prefetch if the unroll factor
is far from what is required by the prefetch.
From-SVN: r159514
Jan Hubicka [Mon, 17 May 2010 22:13:07 +0000 (00:13 +0200)]
ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
* ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
(ipcp_estimate_growth): Likewise.
(ipcp_const_param_count): Likewise.
(ipcp_insert_stage): Likewise.
* ipa-prop.c (visit_load_for_mod_analysis): New function.
(visit_store_addr_for_mod_analysis): Set used flag.
(ipa_detect_param_modifications): Set used flag for SSE params;
update use of walk_stmt_load_store_addr_ops.
(ipa_print_node_params): Print used flag.
(ipa_write_node_info): Stream used flag.
(ipa_read_node_info): Likewise.
* ipa-prop.h (struct ipa_param_descriptor): Add used field.
(ipa_is_param_used): New function.
(lto_ipa_fixup_call_notes): Remove unused declaration.
From-SVN: r159513
Rainer Orth [Mon, 17 May 2010 20:28:56 +0000 (20:28 +0000)]
re PR target/44074 (Solaris 2.9 x86 Sun assembler doesn't like rep/lock prefixes on same line)
PR target/44074
* configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/i386/i386.c (print_operand) <case ;>: Also print ; if
!HAVE_AS_IX86_REP_LOCK_PREFIX.
Don't emit whitespace.
* config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
(*rep_movsi): Likewise.
(*rep_movsi_rex64): Likewise.
(*rep_movqi): Likewise.
(*rep_movqi_rex64): Likewise.
(*rep_stosdi_rex64): Likewise.
(*rep_stossi): Likewise.
(*rep_stossi_rex64): Likewise.
(*rep_stosqi): Likewise.
(*rep_stosqi_rex64): Likewise.
(*cmpstrnqi_nz_1): Use {%;} after repz.
(*cmpstrnqi_nz_rex_1): Likewise.
(*cmpstrnqi_1): Likewise.
(*cmpstrnqi_rex_1): Likewise.
(*strlenqi_1): Use {%;} after repnz.
(*strlenqi_rex_1): Likewise.
* config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
(*sync_compare_and_swap<mode>): Likewise.
(sync_double_compare_and_swap<mode>): Likewise.
(*sync_double_compare_and_swapdi_pic): Likewise.
(sync_old_add<mode>): Likewise.
(sync_add<mode>): Likewise.
(sync_sub<mode>): Likewise.
(sync_<code><mode>): Likewise.
From-SVN: r159512
Janus Weil [Mon, 17 May 2010 19:58:48 +0000 (21:58 +0200)]
re PR fortran/43990 ([OOP] ICE in output_constructor_regular_field, at varasm.c:4995)
2010-05-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/43990
* trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
This is now handled via 'gfc_class_null_initializer'.
2010-05-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/43990
* gfortran.dg/class_21.f03: New.
From-SVN: r159511
Jason Merrill [Mon, 17 May 2010 19:54:05 +0000 (15:54 -0400)]
call.c (struct z_candidate): Add explicit_targs field.
* call.c (struct z_candidate): Add explicit_targs field.
(add_template_candidate_real): Set it.
(build_over_call): Use it to control init-list warning.
From-SVN: r159510
Jason Merrill [Mon, 17 May 2010 19:53:55 +0000 (15:53 -0400)]
re PR c++/44157 ([C++0x] GCC wrongly takes a std::initializer_list argument as non-deduced context)
PR c++/44157
* call.c (build_over_call): Limit init-list deduction warning to
cases where the argument is actually an init-list.
From-SVN: r159509
Jason Merrill [Mon, 17 May 2010 19:53:45 +0000 (15:53 -0400)]
re PR c++/44158 ([C++0x] wrong overload resolution for copy-initialization from an rvalue)
PR c++/44158
* call.c (build_over_call): Don't do bitwise copy for move ctor.
From-SVN: r159508
Martin Jambor [Mon, 17 May 2010 19:43:40 +0000 (21:43 +0200)]
cgraph.h (cgraph_indirect_call_info): New fields anc_offset, otr_token and polymorphic.
2010-05-17 Martin Jambor <mjambor@suse.cz>
* cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
otr_token and polymorphic.
* cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
(cgraph_clone_edge): Copy the above fields.
* tree.c (get_binfo_at_offset): New function.
* tree.h (get_binfo_at_offset): Declare.
* ipa-prop.h (enum jump_func_type): Added known_type jump function
type, reordered items, updated comments.
(union jump_func_value): Added base_type field, reordered fields.
(enum ipa_lattice_type): Moved down in the file.
(struct ipa_param_descriptor): New field polymorphic.
(ipa_is_param_polymorphic): New function.
* ipa-prop.c: Include gimple.h and gimple-fold.h.
(ipa_print_node_jump_functions): Print known type jump functions.
(compute_complex_pass_through): Renamed to...
(compute_complex_assign_jump_func): this.
(compute_complex_ancestor_jump_func): New function.
(compute_known_type_jump_func): Likewise.
(compute_scalar_jump_functions): Create known type and complex ancestor
jump functions.
(ipa_note_param_call): New parameter polymorphic, set the corresponding
flag in the call note accordingly.
(ipa_analyze_call_uses): Renamed to...
(ipa_analyze_indirect_call_uses): this. New parameter target, define
variable var only in the block where it is used.
(ipa_analyze_virtual_call_uses): New function.
(ipa_analyze_call_uses): Likewise.
(combine_known_type_and_ancestor_jfs): Likewise.
(update_jump_functions_after_inlining): Implemented handling of a
number of new jump function types combination.
(print_edge_addition_message): Removed.
(make_edge_direct_to_target): New function.
(try_make_edge_direct_simple_call): Likewise.
(try_make_edge_direct_virtual_call): Likewise.
(update_call_notes_after_inlining): Renamed to...
(update_indirect_edges_after_inlining): this. Moved edge creation for
indirect calls to try_make_edge_direct_simple_call, also calls
try_make_edge_direct_virtual_call for virtual calls.
(ipa_print_node_params): Changed the header message.
(ipa_write_jump_function): Stream also known type jump functions.
(ipa_read_jump_function): Likewise.
(ipa_write_indirect_edge_info): Stream new fields in
cgraph_indirect_call_info.
(ipa_read_indirect_edge_info): Likewise.
* Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
GIMPLE_FOLD_H.
* testsuite/g++.dg/ipa/ivinline-1.C: New test.
* testsuite/g++.dg/ipa/ivinline-2.C: New test.
* testsuite/g++.dg/ipa/ivinline-3.C: New test.
* testsuite/g++.dg/ipa/ivinline-4.C: New test.
* testsuite/g++.dg/ipa/ivinline-5.C: New test.
* testsuite/g++.dg/ipa/ivinline-6.C: New test.
From-SVN: r159507
Janus Weil [Mon, 17 May 2010 18:45:32 +0000 (20:45 +0200)]
class.c (gfc_add_component_ref,gfc_class_null_initializer, [...]): Moved here from other places.
2010-05-17 Janus Weil <janus@gcc.gnu.org>
* class.c (gfc_add_component_ref,gfc_class_null_initializer,
gfc_build_class_symbol,add_proc_component,add_proc_comps,
add_procs_to_declared_vtab1,copy_vtab_proc_comps,
add_procs_to_declared_vtab,add_generic_specifics,
add_generics_to_declared_vtab,gfc_find_derived_vtab,
find_typebound_proc_uop,gfc_find_typebound_proc,
gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
gfc_get_tbp_symtree): Moved here from other places.
* expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
class.c.
* gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
gfc_find_typebound_proc,gfc_find_typebound_user_op,
gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
* Make-lang.in: Add class.o.
* symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
add_procs_to_declared_vtab1,copy_vtab_proc_comps,
add_procs_to_declared_vtab,add_generic_specifics,
add_generics_to_declared_vtab,gfc_find_derived_vtab,
find_typebound_proc_uop,gfc_find_typebound_proc,
gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
gfc_get_tbp_symtree): Move to class.c.
From-SVN: r159506
Rainer Orth [Mon, 17 May 2010 18:19:17 +0000 (18:19 +0000)]
Forgot ChangeLog entry for last commit.
From-SVN: r159504
Rainer Orth [Mon, 17 May 2010 18:18:08 +0000 (18:18 +0000)]
* config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
From-SVN: r159503
Nathan Froyd [Mon, 17 May 2010 18:16:27 +0000 (18:16 +0000)]
tree.h (CALL_EXPR_ARGS): Delete.
* tree.h (CALL_EXPR_ARGS): Delete.
(call_expr_arglist): Delete.
* tree.c (call_expr_arglist): Delete.
* builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
targetm.fold_builtin.
* config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
* config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
arglist parameter. Use CALL_EXPR_ARG.
(picochip_expand_builtin_3op): Likewise.
(picochip_expand_builtin_2opvoid): Likewise.
(picochip_expand_array_get): Likewise.
(picochip_expand_array_put): Likewise.
(picochip_expand_array_testport): Likewise.
(picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
rather than arglist.
* config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
CALL_EXPR_ARGS.
* config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
than TREE_VALUE and TREE_CHAIN.
* config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
* doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
the arglist.
From-SVN: r159502
Dodji Seketeli [Mon, 17 May 2010 17:24:32 +0000 (17:24 +0000)]
re PR c++/44108 (-Wunused-but-set-variable does not consider array sizing use of a const variable)
PR c++/44108
* decl.c (compute_array_index_type): Call mark_rvalue_use.
* c-c++-common/Wunused-var-8.c: New test.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r159497
Jakub Jelinek [Mon, 17 May 2010 17:19:46 +0000 (19:19 +0200)]
re PR bootstrap/42347 (sched-deps.c:3840:1: internal compiler error: in fixup_reorder_chain, at cfglayout.c:796)
PR bootstrap/42347
* cfglayout.c (fixup_reorder_chain): Allow returnjump_p
to have no fallthru edge.
* gcc.c-torture/compile/pr42347.c: New test.
From-SVN: r159496
Jakub Jelinek [Mon, 17 May 2010 17:18:24 +0000 (19:18 +0200)]
re PR middle-end/44102 (ICE with asm goto + __builtin_unreachable () in C++)
PR middle-end/44102
* cfgcleanup.c (try_optimize_cfg): When removing trivially empty
bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
add BARRIER after previous bb if needed.
* g++.dg/ext/asmgoto1.C: New test.
From-SVN: r159495
Nathan Froyd [Mon, 17 May 2010 16:28:51 +0000 (16:28 +0000)]
fix ChangeLog entries for previous commits
From-SVN: r159494
Nathan Froyd [Mon, 17 May 2010 16:10:31 +0000 (16:10 +0000)]
fix bogus email for myself
From-SVN: r159492
Nathan Froyd [Mon, 17 May 2010 16:09:35 +0000 (16:09 +0000)]
tree.c (build_function_type_list_1): Remove bogus assert condition.
gcc/
* tree.c (build_function_type_list_1): Remove bogus assert condition.
gcc/fortran/
* trans-types.c (gfc_init_types): Use build_function_type_list.
(gfc_get_ppc_type): Likewise.
* trans-decl.c (gfc_generate_constructors): Likewise.
* f95-lang.c (build_builtin_fntypes): Likewise.
(gfc_init_builtin_functions): Likewise.
(DEF_FUNCTION_TYPE_0): Likewise.
(DEF_FUNCTION_TYPE_1): Likewise.
(DEF_FUNCTION_TYPE_2): Likewise.
(DEF_FUNCTION_TYPE_3): Likewise.
(DEF_FUNCTION_TYPE_4): Likewise.
(DEF_FUNCTION_TYPE_5): Likewise.
(DEF_FUNCTION_TYPE_6): Likewise.
(DEF_FUNCTION_TYPE_7): Likewise. Use ARG7.
(DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
From-SVN: r159491
Nathan Froyd [Mon, 17 May 2010 16:03:46 +0000 (16:03 +0000)]
trans-array.c (gfc_trans_array_constructor_value): Use build_constructor instead of build_constructor_from_list.
* trans-array.c (gfc_trans_array_constructor_value): Use
build_constructor instead of build_constructor_from_list.
(gfc_build_constant_array_constructor): Likewise.
* trans-decl.c (create_main_function): Likewise.
* trans-stmt.c (gfc_trans_character_select): Likewise.
From-SVN: r159490
Alan Modra [Mon, 17 May 2010 13:34:23 +0000 (23:04 +0930)]
rs6000.c (rs6000_emit_allocate_stack): Delete unnecessary prototype.
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
unnecessary prototype. Replace copy_r12 and copy_r11 flag params
with copy_reg rtx param.
(rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
Correct cases where code for ABI_V4 did not initialise the reg
used to access frame. Also leave frame_reg_rtx as sp for large
frames that save no regs.
From-SVN: r159483
Martin Jambor [Mon, 17 May 2010 12:48:34 +0000 (14:48 +0200)]
re PR middle-end/44133 (Uninit warning regression with new SRA)
2010-05-17 Martin Jambor <mjambor@suse.cz>
PR middle-end/44133
* tree-sra.c (create_access_replacement): New parameter rename, mark
the replaement for renaming only when it is true.
(get_access_replacement): Pass true in the rename parameter of
create_access_replacement.
(get_unrenamed_access_replacement): New function.
(replace_uses_with_default_def_ssa_name): New parameter racc, get the
replacement declaration from it.
* testsuite/gcc.dg/tree-ssa/pr44133.c: New test.
* testsuite/gcc.dg/tree-ssa/sra-9.c: Make the scan regular
expression more precise.
From-SVN: r159482
Bernd Schmidt [Mon, 17 May 2010 11:16:00 +0000 (11:16 +0000)]
function.c (try_fit_stack_local, [...]): New static functions.
* function.c (try_fit_stack_local, add_frame_space): New static
functions.
(assign_stack_local_1): Use them. Look for opportunities to use
space previously wasted on alignment.
* function.h (struct frame_space): New.
(struct rtl_data): Add FRAME_SPACE_LIST member.
* reload1.c (something_was_spilled): New static variable.
(alter_reg): Set it.
(reload): Test it in addition to testing if the frame size changed.
From-SVN: r159480
Paolo Carlini [Mon, 17 May 2010 10:19:31 +0000 (10:19 +0000)]
functional (result_of): Move...
2010-05-17 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/functional (result_of): Move...
* include/std/type_traits: ... here.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
line number.
From-SVN: r159478
Janus Weil [Mon, 17 May 2010 08:25:06 +0000 (10:25 +0200)]
re PR fortran/44044 ([OOP] SELECT TYPE with class-valued function)
2010-05-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/44044
* resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
(resolve_fl_variable_derived): ... this place.
(resolve_symbol): Make sure function symbols (and their result
variables) are not resolved twice.
2010-05-17 Janus Weil <janus@gcc.gnu.org>
PR fortran/44044
* gfortran.dg/class_20.f03: New.
From-SVN: r159476
Christian Borntraeger [Mon, 17 May 2010 07:53:20 +0000 (07:53 +0000)]
re PR middle-end/44078 (FAIL: gcc.dg/tree-ssa/prefetch-7.c)
2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
PR 44078
* gcc.dg/tree-ssa/prefetch-7.c: Change pattern to match only the old
debug messages but not the newly introduced one.
From-SVN: r159475
Christian Borntraeger [Mon, 17 May 2010 07:52:27 +0000 (07:52 +0000)]
s390.c: Define sane prefetch settings and activate flag_prefetch_loop_arrays on -O3.
2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
* config/s390/s390.c: Define sane prefetch settings and activate
flag_prefetch_loop_arrays on -O3.
* config/s390/s390.h: Declare that read can use write prefetch.
From-SVN: r159474
Jakub Jelinek [Mon, 17 May 2010 07:32:44 +0000 (09:32 +0200)]
lto-streamer-out.c (lto_output): Fix --enable-checking=release build.
* lto-streamer-out.c (lto_output): Fix --enable-checking=release
build.
From-SVN: r159473
Jan Hubicka [Mon, 17 May 2010 07:01:26 +0000 (09:01 +0200)]
ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of function body...
* ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
function body; do not check stdarg field of struct function.
From-SVN: r159472
GCC Administrator [Mon, 17 May 2010 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r159471
Jan Hubicka [Sun, 16 May 2010 22:24:26 +0000 (00:24 +0200)]
cgraph.c (dump_cgraph_node): Dump versionable flag.
* cgraph.c (dump_cgraph_node): Dump versionable flag.
* cgraph.h (cgraph_local_info): Add versionable flag.
* ipa-cp.c (ipcp_analyze_node): Set versionable flag.
(ipcp_versionable_function_p): Use it.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
versionable flag.
From-SVN: r159467
Jan Hubicka [Sun, 16 May 2010 21:49:36 +0000 (23:49 +0200)]
cgraph.c (cgraph_clone_node): Take decl argument and insert clone into hash when it is different from orig.
* cgraph.c (cgraph_clone_node): Take decl argument and insert
clone into hash when it is different from orig.
(cgraph_create_virtual_clone): Update use of cgraph_clone_node.
* cgraph.h (cgraph_clone_node): Update prototype.
* lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
(lto_cgraph_encoder_delete): Delete body map.
(lto_cgraph_encoder_size): Move to header.
(lto_cgraph_encoder_encode_body_p, lto_set_cgraph_encoder_encode_body): New.
(lto_output_node): Do not take written_decls argument; output clone_of
pointer.
(add_node_to): Add include_body_argument; call
lto_set_cgraph_encoder_encode_body on master of the clone.
(add_references): Update use of add_node_to.
(compute_ltrans_boundary): Likewise.
(output_cgraph): Do not create written_decls bitmap.
(input_node): Take nodes argument; stream in clone_of correctly.
(input_cgraph_1): Update use of input_node.
* lto-streamer-out.c (lto_output): Use encoder info to decide
what bodies to output.
* ipa-inline.c (cgraph_clone_inlined_nodes,
cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
* lto-streamer.h (lto_cgraph_encoder_d): Add body.
(lto_cgraph_encoder_size): Define here.
(lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
Declare.
From-SVN: r159466
Daniel Franke [Sun, 16 May 2010 20:01:06 +0000 (16:01 -0400)]
re PR fortran/35779 (error pointer wrong in PARAMETER)
gcc/fortran/:
2010-05-16 Daniel Franke <franke.daniel@gmail.com>
PR fortran/35779
* array.c (match_array_list): Revert functional change of 2010-05-13.
gcc/fortran/:
2010-05-16 Daniel Franke <franke.daniel@gmail.com>
PR fortran/35779
* gfortran.dg/initialization_25.f90: Commented testcase.
* gfortran.dg/initialization_26.f90: New.
From-SVN: r159465
Richard Guenther [Sun, 16 May 2010 19:56:44 +0000 (19:56 +0000)]
invoke.texi (-fipa-struct-reorg): Do not mention -fipa-type-escape.
2010-05-16 Richard Guenther <rguenther@suse.de>
* doc/invoke.texi (-fipa-struct-reorg): Do not mention
-fipa-type-escape.
* ipa-type-escape.c (gate_type_escape_vars): Run when
-fipa-struct-reorg runs.
* opts.c (decode_options): Do not unset flag_ipa_type_escape.
* common.opt (fipa-type-escape): Remove.
* gcc.dg/pr43317.c: Do not pass -fipa-type-escape.
* gcc.dg/pr43084.c: Likewise.
* gcc.dg/pr42250.c: Pass -fipa-struct-reorg instead of
-fipa-type-escape.
* gcc.dg/struct/wo_prof_escape_arg_to_local.c: Do not pass
-fipa-type-escape.
* gcc.dg/struct/struct-reorg.exp: Likewise.
* gcc.dg/struct/wo_prof_empty_str.c: Likewise.
* gcc.dg/struct/wo_prof_escape_return.c: Likewise.
From-SVN: r159464
Eric Botcazou [Sun, 16 May 2010 18:46:16 +0000 (18:46 +0000)]
opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
* opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
(decode_options): Likewise.
* Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
From-SVN: r159463
Richard Guenther [Sun, 16 May 2010 17:27:09 +0000 (17:27 +0000)]
trans-decl.c (module_htab_decls_hash): Revert last change.
2010-05-16 Richard Guenther <rguenther@suse.de>
* trans-decl.c (module_htab_decls_hash): Revert last change.
From-SVN: r159462
Jan Hubicka [Sun, 16 May 2010 17:26:55 +0000 (19:26 +0200)]
ipa.c (function_and_variable_visibility): Also bring local all aliases.
* ipa.c (function_and_variable_visibility): Also bring local all
aliases.
From-SVN: r159461
Richard Guenther [Sun, 16 May 2010 17:15:30 +0000 (17:15 +0000)]
alias.c (nonoverlapping_memrefs_p): Remove use of IPA type-escape information.
2010-05-16 Richard Guenther <rguenther@suse.de>
* alias.c (nonoverlapping_memrefs_p): Remove use of
IPA type-escape information.
From-SVN: r159460
Joseph Myers [Sun, 16 May 2010 16:55:16 +0000 (17:55 +0100)]
c-common.c (c_common_reswords): Add _Static_assert for C.
* c-common.c (c_common_reswords): Add _Static_assert for C.
* c-parser.c (c_token_starts_declaration,
c_parser_next_token_starts_declaration,
c_parser_static_assert_declaration_no_semi,
c_parser_static_assert_declaration): New.
(c_parser_declaration_or_fndef): Add parameter static_assert_ok.
Handle static assertions if static_assert_ok.
(c_parser_external_declaration, c_parser_declaration_or_fndef,
c_parser_compound_statement_nostart, c_parser_label,
c_parser_for_statement, c_parser_objc_methodprotolist,
c_parser_omp_for_loop): All callers of
c_parser_declaration_or_fndef changed.
(c_parser_struct_declaration): Handle static assertions.
(c_parser_compound_statement_nostart): Use
c_parser_next_token_starts_declaration and
c_token_starts_declaration to detect start of declarations.
(c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
Likewise.
testsuite:
* gcc.dg/c1x-static-assert-1.c, gcc.dg/c1x-static-assert-2.c,
gcc.dg/c1x-static-assert-3.c, gcc.dg/c1x-static-assert-4.c,
gcc.dg/c1x-static-assert-5.c, gcc.dg/c1x-static-assert-6.c,
gcc.dg/c90-static-assert-1.c, gcc.dg/c99-static-assert-1.c: New
tests.
From-SVN: r159459
Anatoly Sokolov [Sun, 16 May 2010 16:51:40 +0000 (20:51 +0400)]
mmix.h (FUNCTION_VALUE, [...]): Remove macros.
* config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
* config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
TARGET_FUNCTION_VALUE_REGNO_P): Define.
(mmix_function_outgoing_value): Rename to...
(mmix_function_value): ...this. Make static. Add 'outgoing' argument.
(mmix_function_value_regno_p): Make static.
(mmix_libcall_value): New function.
* config/mmix/mmix-protos.h (mmix_function_outgoing_value,
mmix_function_value_regno_p): Remove declaration.
From-SVN: r159458
Eric Botcazou [Sun, 16 May 2010 15:20:47 +0000 (15:20 +0000)]
tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on BUILT_IN_ALLOCA if stack checking is enabled.
* tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
BUILT_IN_ALLOCA if stack checking is enabled.
From-SVN: r159457
Richard Guenther [Sun, 16 May 2010 14:58:34 +0000 (14:58 +0000)]
var-tracking.c (vars_copy_1): Inline ...
2010-05-16 Richard Guenther <rguenther@suse.de>
* var-tracking.c (vars_copy_1): Inline ...
(vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
(variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
(variable_merge_over_cur): Adjust. Merge asserts.
(variable_merge_over_src): Likewise.
(dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
(variable_post_merge_new_vals): Merge asserts.
(variable_post_merge_perm_vals): Likewise.
(find_mem_expr_in_1pdv): Likewise.
(dataflow_set_different_value): Remove.
(onepart_variable_different_p): Merge asserts.
(variable_different_p): Likewise.
(dataflow_set_different_1): Inline ...
(dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
(emit_notes_for_differences_1): Merge asserts.
From-SVN: r159456
Richard Guenther [Sun, 16 May 2010 14:47:38 +0000 (14:47 +0000)]
lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2010-05-16 Richard Guenther <rguenther@suse.de>
* lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
* optabs.c (libfunc_decl_hash): Likewise.
* varasm.c (emutls_decl): Likewise.
fortran/
* trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
From-SVN: r159455
Manuel López-Ibáñez [Sun, 16 May 2010 10:30:39 +0000 (10:30 +0000)]
misc.c (gnat_handle_option): Remove special logic for Wuninitialized without -O.
2010-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
ada/
* gcc-interface/misc.c (gnat_handle_option): Remove special logic
for Wuninitialized without -O.
fortran/
* options.c (set_Wall): Remove special logic for Wuninitialized
without -O.
From-SVN: r159454
Uros Bizjak [Sun, 16 May 2010 10:03:01 +0000 (12:03 +0200)]
pass46-frag.c (dg-options): Remove -Wall.
* testsuite/libmudflap.c/pass46-frag.c (dg-options): Remove -Wall.
From-SVN: r159453
Eric Botcazou [Sun, 16 May 2010 09:11:39 +0000 (09:11 +0000)]
gigi.h (enum standard_datatypes): Add new value ADT_exception_data_name_id.
* gcc-interface/gigi.h (enum standard_datatypes): Add new value
ADT_exception_data_name_id.
(exception_data_name_id): New define.
* gcc-interface/trans.c (gigi): Initialize it.
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use the standard
exception type for standard exception definitions. Do not make them
volatile.
<E_Record_Type>: Equate fields of types associated with an exception
definition to those of the standard exception type.
From-SVN: r159452
Steven Bosscher [Sun, 16 May 2010 07:12:46 +0000 (07:12 +0000)]
c-decl.c: Don't include gimple.h.
* c-decl.c: Don't include gimple.h.
(merge_decls): Do not copy gimple_body.
From-SVN: r159451
Jason Merrill [Sun, 16 May 2010 02:27:02 +0000 (22:27 -0400)]
c.opt: Add -fnothrow-opt.
gcc:
* c.opt: Add -fnothrow-opt.
gcc/cp:
* cp-tree.h (TYPE_NOEXCEPT_P): New macro.
* except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
TYPE_NOEXCEPT_P.
(finish_eh_spec_block): Adjust.
From-SVN: r159450
GCC Administrator [Sun, 16 May 2010 00:16:54 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r159449
Janus Weil [Sat, 15 May 2010 22:03:09 +0000 (00:03 +0200)]
re PR fortran/44154 (initialization problem with allocatable scalars)
2010-05-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/44154
PR fortran/42647
* trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
if branches.
2010-05-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/44154
PR fortran/42647
* gfortran.dg/allocatable_scalar_9.f90: New.
From-SVN: r159445
Jan Hubicka [Sat, 15 May 2010 20:48:58 +0000 (22:48 +0200)]
ipa-prop.c (ipa_prop_read_section): Add sanity check that node is analyzed.
* ipa-prop.c (ipa_prop_read_section): Add sanity check that node is analyzed.
* passes.c (ipa_write_summaries): Write all analyzed nodes.
From-SVN: r159444
Jakub Jelinek [Sat, 15 May 2010 20:23:59 +0000 (22:23 +0200)]
re PR c++/44148 (C++ genericization/gimplification may clobber templare arguments)
PR c++/44148
* pt.c (tsubst): Unshare template argument.
* g++.dg/torture/pr44148.C: New test.
From-SVN: r159443
Steven Bosscher [Sat, 15 May 2010 20:02:11 +0000 (20:02 +0000)]
vecir.h: New file with VEC primitives for tree, gimple, and rtl.
gcc/ChangeLog
* vecir.h: New file with VEC primitives for tree, gimple, and rtl.
* Makefile.in: Add it.
Fix all other Makefile dependencies for changes below.
* tree.h: Include it instead of defining VEC primitives here.
* gimple.h: Likewise.
* rtl.h: Likewise.
* tree-inline.h: Inlclude vecir.h instead of gimple.h.
* except.h: Include vecir.h, break dependence on tree.h.
* gimplify.c (append_to_statement_list_1, append_to_statement_list):
Move from here...
* tree-iterator.c: ...to here.
* tree-iterator.h: Fix file introduction comment. Add extern markers.
* c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
tm_p.h.
* c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
* c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
tree-mudflap.h, and target.h.
* c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
predict.h, tree-inline.h, gimple.h, and langhooks.h.
* c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
Add FIXME for why gimple.h is still included (should be unnecessary
since GCC 4.5 gimplification unit-at-a-time).
* c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
* c-pragma.c: Add FIXME for why function.h needs to be included just
for cfun, at front-end level.
Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
Do not include ggc.h, but include vecprim.h for VEC(char).
* c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
Explain why target.h is included.
* c-omp.h: Do not include tm.h, function.h, and bitmap.h.
Explain why gimple.h is included.
* c-ppoutput.c: Do not include tm.h.
* c-common.c: Do not include gimple.h. Explain why expr.h is included.
* c-parses.c: Explain why rtl.h is included, and that this (and only
this) is also why tm.h must be included.
Do not include except.h.
* c-lang.c: Do not include ggc.h.
cp/ChangeLog
* decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
* Make-lang.in: Fix dependencies accordingly.
From-SVN: r159442
Uros Bizjak [Sat, 15 May 2010 19:58:30 +0000 (21:58 +0200)]
targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
* targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
From-SVN: r159441
Uros Bizjak [Sat, 15 May 2010 19:19:48 +0000 (21:19 +0200)]
mfdg.exp (additional_prunes): New global.
* testsuite/lib/mfdg.exp (additional_prunes): New global.
(dg-test): Clear additional_prunes before test is run.
(dg-prune-output): New procedure.
* testsuite/lib/libmudflap.exp (libmudflap-dg-test): Do not call
prune_gcc_output.
(libmudflap-dg-prune): New procedure.
* testsuite/libmudflap.c++/pass57-frag.cxx (dg-prune-output):
New dg directive.
From-SVN: r159440
Joseph Myers [Sat, 15 May 2010 19:07:01 +0000 (20:07 +0100)]
c-decl.c (grokfield): Allow typedefs for anonymous structs and unions by default if...
* c-decl.c (grokfield): Allow typedefs for anonymous structs and
unions by default if those structs and unions have no tags. Do
not condition anonymous struct and unions handling on flag_iso.
Allow anonymous structs and unions for C1X.
(finish_struct): Do not diagnose lack of named fields when
anonymous structs and unions present for C1X. Accept flexible
array members in structure with anonymous structs or unions but no
directly named fields.
* doc/extend.texi (Unnamed Fields): Update.
testsuite:
* gcc.dg/c1x-anon-struct-1.c, gcc.dg/c1x-anon-struct-2.c,
gcc.dg/c90-anon-struct-1.c, gcc.dg/c99-anon-struct-1.c: New tests.
* gcc.dg/
20080820.c, gcc.dg/anon-struct-1.c: Update expected
diagnostics and type sizes.
From-SVN: r159439
Eric Botcazou [Sat, 15 May 2010 19:05:06 +0000 (19:05 +0000)]
gimple.h (compare_field_offset): Rename into...
* gimple.h (compare_field_offset): Rename into...
(gimple_compare_field_offset): ...this.
* gimple.c (compare_field_offset): Rename into...
(gimple_compare_field_offset): ...this. Compare the full access if
the offset is self-referential.
(gimple_types_compatible_p): Adjust for above renaming.
* lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
DECL_NONADDRESSABLE_P flag of fields before merging them.
From-SVN: r159438
Nathan Froyd [Sat, 15 May 2010 18:41:11 +0000 (18:41 +0000)]
tree.h (ctor_to_list): Delete.
* tree.h (ctor_to_list): Delete.
* tree.c (ctor_to_list): Delete.
From-SVN: r159437
Jan Hubicka [Sat, 15 May 2010 17:06:48 +0000 (19:06 +0200)]
ipareference_1.c: Rename to ...
* gcc.dg/lto/ipareference_1.c: Rename to ...
* gcc.dg/lto/ipareference_0.c: ... this one.
* gcc.dg/lto/ipareference_2.c: Rename to ...
* gcc.dg/lto/ipareference_1.c: ... this one.
From-SVN: r159436
Jan Hubicka [Sat, 15 May 2010 16:57:35 +0000 (18:57 +0200)]
ipa-reference.c: Include toplev.h
* ipa-reference.c: Include toplev.h
(is_proper_for_analysis): Only add to all_module_statics
if it is allocated.
(write_node_summary_p, stream_out_bitmap,
ipa_reference_write_optimization_summary,
ipa_reference_read_optimization_summary): New.
(struct ipa_opt_pass_d pass_ipa_reference): Add
optimization summary streaming.
* lto-cgraph.c (referenced_from_this_partition_p,
reachable_from_this_partition_p): New functions.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
* opts.c (decode_options): Enable ipa_reference.
* Makefile.in (ipa-reference.o): Add toplev.h dependency.
* lto-streamer.h (referenced_from_this_partition_p,
reachable_from_this_partition_p): Declare.
* gcc.dg/lto/ipareference_1.c: New file.
* gcc.dg/lto/ipareference_2.c: New file.
From-SVN: r159435
Richard Guenther [Sat, 15 May 2010 15:06:47 +0000 (15:06 +0000)]
re PR other/44038 (ICE: verify_stmts failed)
2010-05-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44038
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
taking the address of a V_C_E of a constant.
* gcc.c-torture/compile/pr44038.c: New testcase.
From-SVN: r159434
H.J. Lu [Sat, 15 May 2010 13:54:44 +0000 (13:54 +0000)]
Add -std=c99 to avx-cmpsd-1.c and avx-cmpss-1.c.
2010-05-15 H.J. Lu <hongjiu.lu@intel.com>
* gcc.target/i386/avx-cmpsd-1.c: Add -std=c99.
* gcc.target/i386/avx-cmpss-1.c: Likewise.
From-SVN: r159432
Janus Weil [Sat, 15 May 2010 13:52:33 +0000 (15:52 +0200)]
re PR fortran/43207 ([OOP] invalid (pointer) assignment to and from abstract non-polymorphic expressions)
2010-05-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/43207
PR fortran/43969
* gfortran.h (gfc_class_null_initializer): New prototype.
* expr.c (gfc_class_null_initializer): New function to build a NULL
initializer for CLASS pointers.
* symbol.c (gfc_build_class_symbol): Modify internal naming of class
containers. Remove default NULL initialization of $data component.
* trans.c (gfc_allocate_array_with_status): Fix wording of an error
message.
* trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
Use new function 'gfc_class_null_initializer'.
* trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
class variables.
2010-05-15 Janus Weil <janus@gcc.gnu.org>
PR fortran/43207
PR fortran/43969
* gfortran.dg/class_18.f03: New.
* gfortran.dg/class_19.f03: New.
From-SVN: r159431
Jan Hubicka [Sat, 15 May 2010 09:46:55 +0000 (11:46 +0200)]
tree.h (memory_identifier_string): Remove.
* tree.h (memory_identifier_string): Remove.
* ipa-reference.c: Update comment; do not include gt-ipa-reference.h
(ipa_reference_global_vars_info_d): Remove statics_not_read and
statics_not_written.
(ipa_reference_optimization_summary_d): New structure.
(ipa_reference_optimization_summary_t): New type and vector.
(ipa_reference_vars_info_d): Embedd structures instead of using
pointers.
(reference_vars_to_consider): Remove out of GGC space.
(module_statics_escape): Remove.
(global_info_obstack): Rename to ...
(optimization_summary_obstack): ... this one.
(initialization_status_t): Remove.
(memory_identifier_string): Remove.
(get_reference_vars_info): Fix indenting.
(set_reference_vars_info): Likewise.
(get_reference_optimization_summary): New.
(set_reference_optimization_summary): New.
(get_global_reference_vars_info): Remove.
(ipa_reference_get_read_global): Remove.
(ipa_reference_get_written_global): Remove.
(ipa_reference_get_not_read_global): Update.
(ipa_reference_get_not_written_global): Update.
(is_proper_for_analysis): Outlaw addressable.
(propagate_bits): Update for new datastructures.
(analyze_variable): Remove.
(init_function_info): Update for new datastructures.
(clean_function_local_data): Remove.
(clean_function): Remove.
(copy_global_bitmap): Use optimizations_summary_obstack.
(duplicate_node_data): Duplicate optimization summary only.
(remove_node_data): Remove optimization summary only.
(generate_summary): Do not analyze variables; do not compute
module_statics_escape; do not prune solutions by it.
(read_write_all_from_decl): Fix typos in comments.
(propagate): Doscover readonly and nonaddressable first;
update for new datastructures; share global bitmaps.
* ipa-reference.h (ipa_reference_get_read_global,
ipa_reference_get_written_global): Remove.
* ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
* Makefile.in: Remove ipa-refereference from GT files.
From-SVN: r159430
Jakub Jelinek [Sat, 15 May 2010 06:01:20 +0000 (08:01 +0200)]
re PR debug/44112 (Revision 159354 causes Fortran test failures)
PR debug/44112
* dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
for all SYMBOL_REF_DECLs.
* gcc.dg/debug/dwarf2/const-1.c: Remove.
* g++.dg/debug/dwarf2/const1.C: Remove.
From-SVN: r159429
Jason Merrill [Sat, 15 May 2010 02:22:37 +0000 (22:22 -0400)]
C++ DR 475
C++ DR 475
* except.c (build_throw): Simplify, adjust for DR 475.
From-SVN: r159428
Joseph Myers [Sat, 15 May 2010 01:06:29 +0000 (02:06 +0100)]
* fi.po: New.
From-SVN: r159426
GCC Administrator [Sat, 15 May 2010 00:17:02 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r159425
Jan Hubicka [Fri, 14 May 2010 23:39:39 +0000 (01:39 +0200)]
cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
* cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
(varpool_all_refs_explicit_p): New inline function.
* ipa-reference.c: Update comment.
(module_statics_written): Remove.
(get_static_decl): Remove.
(ipa_init): Do not initialize module_statics_written.
(analyze_function): Likewise.
(generate_summary): Likewise; do not compute module_statics_readonly
and do not update variable flags.
(propagate): Call ipa_discover_readonly_nonaddressable_vars.
* ipa.c: Inlucde flags.h
(cgraph_local_node_p): New.
(cgraph_remove_unreachable_nodes): Return early when not optimizing;
promote functions to local.
(ipa_discover_readonly_nonaddressable_vars): New function.
(function_and_variable_visibility): Use cgraph_local_node_p.
* varpool.c (varpool_finalize_decl): Set force_output for
DECL_PRESERVE_P vars.
From-SVN: r159421
Steven G. Kargl [Fri, 14 May 2010 21:02:26 +0000 (21:02 +0000)]
re PR fortran/44135 (Negative array bounds lead to spurious warning)
2010-05-14 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/44135
* gfortran.dg/actual_array_interface_2.f90: New test.
2010-05-14 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/44135
* fortran/interface.c (get_sym_storage_size): Use signed instead of
unsigned mpz_get_?i routines.
From-SVN: r159415
Nathan Froyd [Fri, 14 May 2010 20:47:39 +0000 (20:47 +0000)]
re PR middle-end/44103 (New Java test failures)
PR 44103
* java-tree.h (START_RECORD_CONSTRUCTOR): Change first argument to a
vector. Move call to build_constructor...
(FINISH_RECORD_CONSTRUCTOR): ...here. Add necessary arguments. Clear
TREE_CONSTANT on the constructor.
(PUSH_SUPER_VALUE): Change first argument to a vector.
(PUSH_FIELD_VALUE): Likewise.
* resource.c (compile_resource_data): Update calls to above macros.
* constants.c (build_constants_constructor): Likewise.
* class.c (build_utf8_ref): Likewise.
(make_field_value): Likewise.
(make_method_value): Likewise.
(add_table_and_syms): New function.
(make_class_data): Call it. Update calls to above macros.
(build_symbol_table_entry): New function.
(build_symbol_entry): Call it. Update calls to above macros.
(emit_symbol_table): Likewise.
(make_catch_class_record): Update calls to above macros.
(build_assertion_table_entry): New function.
(add_assertion_table_entry): Call it.
(emit_assertion_table): Likewise.
From-SVN: r159414
Jan Hubicka [Fri, 14 May 2010 20:38:43 +0000 (22:38 +0200)]
* ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
From-SVN: r159413
Richard Guenther [Fri, 14 May 2010 20:18:34 +0000 (20:18 +0000)]
re PR tree-optimization/44119 (error: SSA name in freelist but still referenced)
2010-05-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44119
* tree-ssa-pre.c (eliminate): Properly mark replacement of
a PHI node necessary.
* gcc.c-torture/compile/pr44119.c: New testcase.
From-SVN: r159412
Eric Botcazou [Fri, 14 May 2010 19:27:14 +0000 (19:27 +0000)]
* tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
From-SVN: r159409
Jason Merrill [Fri, 14 May 2010 18:55:22 +0000 (14:55 -0400)]
re PR c++/44127 (G++ emits unnecessary EH code)
PR c++/44127
gcc:
* gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
(gimple_call_set_nothrow): New.
* gimple.c (gimple_build_call_from_tree): Call it.
(gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
gcc/cp:
* except.c (dtor_nothrow): Return nonzero for type with
trivial destructor.
From-SVN: r159408
Jason Merrill [Fri, 14 May 2010 18:55:10 +0000 (14:55 -0400)]
re PR c++/44127 (G++ emits unnecessary EH code)
PR c++/44127
gcc:
* gimplify.c (gimplify_seq_add_stmt): No longer static.
* gimple.h: Declare it.
* gimple.c (gimple_build_eh_filter): No ops.
gcc/cp:
* cp-gimplify.c (gimplify_must_not_throw_expr): Use
gimple_build_eh_must_not_throw.
From-SVN: r159407
Jan Hubicka [Fri, 14 May 2010 18:34:30 +0000 (20:34 +0200)]
ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue nodes already in queue.
* ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
nodes already in queue.
(cgraph_remove_unreachable_nodes): Cleanup; fix problem with re-enqueueing
node.
From-SVN: r159405
Jakub Jelinek [Fri, 14 May 2010 18:09:14 +0000 (20:09 +0200)]
re PR debug/44136 (ICE in expand_debug_expr with -mno-sse)
PR debug/44136
* cfgexpand.c (expand_debug_expr): If non-memory op0
has BLKmode, return NULL.
* gcc.dg/pr44136.c: New test.
From-SVN: r159400
Harsha Jagasia [Fri, 14 May 2010 17:35:11 +0000 (17:35 +0000)]
config.gcc: Add support for --with-cpu option for bdver1.
2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
* config.gcc: Add support for --with-cpu option for bdver1.
* config/i386/i386.h (TARGET_BDVER1): New macro.
(ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
(ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
(TARGET_CPU_DEFAULT_NAMES): Add bdver1.
(processor_type): Add PROCESSOR_BDVER1.
* config/i386/i386.md: Add bdver1 as a new cpu attribute to match
processor_type in config/i386/i386.h.
Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
movaps <reg, reg> instead of movapd <reg, reg> when replacing
movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
to emit packed xor instead of packed double/packed integer
xor for SSE and AVX when moving a zero value.
* config/i386/sse.md: Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
to emit movaps instead of movapd/movdqa for SSE and AVX.
Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single
logical operations i.e and, or and xor instead of packed double logical
operations for SSE and AVX.
* config/i386/i386-c.c:
(ix86_target_macros_internal): Add PROCESSOR_BDVER1.
* config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
(has_fma4, has_xop): New.
* config/i386/i386.c (bdver1_cost): New variable.
(m_BDVER1): New macro.
(m_AMD_MULTIPLE): Add m_BDVER1.
(x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
x86_tune_use_simode_fiop, x86_tune_promote_qimode,
x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
x86_tune_sse_partial_reg_dependency, x86_tune_sse_unaligned_load_optimal,
x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
Enable/disable for bdver1.
(processor_target_table): Add bdver1_cost.
(cpu_names): Add bdver1.
(override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
processor_alias_table.
(ix86_expand_vector_move_misalign): Change
TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
of movupd/movdqu for SSE and AVX.
(ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
(ix86_tune_adjust_cost): Add code for bdver1.
(standard_sse_constant_opcode): Add check for
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
of packed double xor for SSE and AVX.
From-SVN: r159399
Pat Haugen [Fri, 14 May 2010 15:48:51 +0000 (15:48 +0000)]
tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs() result to unsigned.
* tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
result to unsigned.
From-SVN: r159397
Tristan Gingold [Fri, 14 May 2010 15:42:30 +0000 (15:42 +0000)]
toplev.c (default_debug_hooks): Remove this variable.
2010-05-14 Tristan Gingold <gingold@adacore.com>
* toplev.c (default_debug_hooks): Remove this variable.
(process_options): Remove assignments to default_debug_hooks.
From-SVN: r159396
Martin Jambor [Fri, 14 May 2010 13:08:45 +0000 (15:08 +0200)]
cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef and define.
2010-05-14 Martin Jambor <mjambor@suse.cz>
* cp/cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
and define.
* langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
* langhooks.h (struct lang_hooks_for_decls): Removed field
fold_obj_type_ref.
* tree.c (free_lang_data): Remove assignment to
lang_hooks.fold_obj_type_ref.
* tree.def (OBJ_TYPE_REF): Update comment.
From-SVN: r159393
Richard Guenther [Fri, 14 May 2010 12:36:28 +0000 (12:36 +0000)]
re PR tree-optimization/44124 (valgrind reports invalid read while compiling compile/pr34091.c)
2010-05-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44124
* tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
From-SVN: r159390
Jakub Jelinek [Fri, 14 May 2010 07:40:06 +0000 (09:40 +0200)]
trans.c (trans_code): Set backend locus early.
* trans.c (trans_code): Set backend locus early.
* trans-decl.c (gfc_get_fake_result_decl): Use source location
of the function instead of current input_location.
* gfortran.dg/gomp/pr44036-1.f90: Adjust.
From-SVN: r159388
Eric Botcazou [Fri, 14 May 2010 06:23:16 +0000 (06:23 +0000)]
Fix long lines
From-SVN: r159386
Jonathan Wakely [Fri, 14 May 2010 05:32:48 +0000 (05:32 +0000)]
call.c (build_new_method_call): Change warning text.
2010-05-14 Jonathan Wakely <jwakely.gcc@gmail.com>
* call.c (build_new_method_call): Change warning text.
* typeck2.c (build_functional_cast): Change error text.
From-SVN: r159385
Shujing Zhao [Fri, 14 May 2010 03:19:32 +0000 (03:19 +0000)]
re PR c++/30566 (-Wshadow warns about clashes between nested function parameters in C++)
gcc/cp/
2010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
PR c++/30566
* name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
shadowing the outer parameter or variables by the declaration of
nested function in nested structure or class. Warn the shadowing by
the declaration of nested lambda expression.
gcc/testsuite/
2010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
PR c++/30566
* testsuite/g++.dg/warn/Wshadow-4.C: Adjust.
* testsuite/g++.dg/warn/Wshadow-5.C: New test.
* testsuite/g++.dg/warn/Wshadow-6.C: New test.
From-SVN: r159383
Alan Modra [Fri, 14 May 2010 00:35:16 +0000 (10:05 +0930)]
re PR target/44075 (__builtin_eh_return miscompiled)
PR target/44075
* config/rs6000/rs6000.c (struct machine_function): Reorder
fields for better packing. Add lr_save_state.
(rs6000_ra_ever_killed): Return lr_save_state if set.
(rs6000_emit_eh_reg_restore): Set lr_save_state.
From-SVN: r159382
GCC Administrator [Fri, 14 May 2010 00:17:10 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r159381
Jason Merrill [Thu, 13 May 2010 20:53:38 +0000 (16:53 -0400)]
typeck.c (cp_build_array_ref): Factor out from...
* typeck.c (cp_build_array_ref): Factor out from...
(build_array_ref): ...here. Drop complain parm.
(build_new_op): Adjust.
* class.c (build_vtbl_ref_1): Adjust.
* decl2.c (grok_array_decl): Adjust.
* cp-tree.h: Adjust prototypes.
From-SVN: r159377
Jan Hubicka [Thu, 13 May 2010 17:49:49 +0000 (19:49 +0200)]
* decl.c (cp_finish_decl): Do not worry about used attribute.
From-SVN: r159372