Diego Novillo [Fri, 3 Jun 2011 14:53:27 +0000 (10:53 -0400)]
lto-streamer-in.c (get_resolution): Move to lto/lto.c.
* lto-streamer-in.c (get_resolution): Move to lto/lto.c.
(lto_register_var_decl_in_symtab): Likewise.
(lto_register_function_decl_in_symtab): Likewise.
(lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
logic to lto_read_decls.
lto/ChangeLog
* lto.c (get_resolution): Move from lto-streamer-in.c.
(lto_register_var_decl_in_symtab): Likewise.
(lto_register_function_decl_in_symtab): Likewise.
(uniquify_nodes): Call lto_register_var_decl and
lto_register_function_decl_in_symtab after reading a new
VAR_DECL or FUNCTION_DECL.
Alexandre Oliva [Fri, 3 Jun 2011 01:41:54 +0000 (01:41 +0000)]
re PR debug/47590 (pragma optimize doesn't recompute derived options (was: var tracking produces wrong debug in code where optimization is turned off using pragma))
PR debug/47590
* target.def (delay_sched2, delay_vartrack): New.
* doc/tm.texi.in: Update.
* doc/tm.texi: Rebuild.
* sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
* var-tracking.c (gate_handle_var_tracking): Likewise.
* config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
(bfin_flag_var_tracking): Drop.
(output_file_start): Don't save and override flag_var_tracking.
(bfin_option_override): Ditto flag_schedule_insns_after_reload.
(bfin_reorg): Test original variables.
(TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
* config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
(ia64_flag_var_tracking): Drop.
(TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
(ia64_file_start): Don't save and override flag_var_tracking.
(ia64_override_options_after_change): Ditto
flag_schedule_insns_after_reload.
(ia64_reorg): Test original variables.
* config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
(picochip_flag_var_tracking): Drop.
(TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
(picochip_option_override): Don't save and override
flag_schedule_insns_after_reload.
(picochip_asm_file_start): Ditto flag_var_tracking.
(picochip_reorg): Test original variables.
* config/spu/spu.c (spu_flag_var_tracking): Drop.
(TARGET_DELAY_VARTRACK): Define.
(spu_var_tracking): New.
(spu_machine_dependent_reorg): Call it.
(asm_file_start): Don't save and override flag_var_tracking.
Kaz Kojima [Thu, 2 Jun 2011 22:26:42 +0000 (22:26 +0000)]
predicates.md (general_movsrc_operand): Return 0 for memory and memory subreg of which address is an invalid indexed...
* config/sh/predicates.md (general_movsrc_operand): Return 0
for memory and memory subreg of which address is an invalid
indexed address for QI and HImode.
(general_movdst_operand): Likewise.
* gcc.c-torture/compile/pr49163.c: New.
Eric Botcazou [Thu, 2 Jun 2011 21:52:46 +0000 (21:52 +0000)]
cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL edges only...
2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
* cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
edges only, when there is a non-local label in the function.
* postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
Uros Bizjak [Thu, 2 Jun 2011 20:47:32 +0000 (22:47 +0200)]
constraints.md (Y3): New register constraint.
* config/i386/constraints.md (Y3): New register constraint.
* config/i386/sse.md (*vec_interleave_highv2df): Merge with
*sse3_interleave_highv2df and *sse2_interleave_highv2df.
(*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
*sse2_interleave_lowv2df.
Nicola Pero [Thu, 2 Jun 2011 18:54:32 +0000 (18:54 +0000)]
In gcc/objc/: 2011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
PR objc/48539
* objc-act.c (objc_finish_message_expr): Warn if messaging a class
that was only declared using @class without an @interface. Warn
if messaging an instance of a class that was only declared using
@class without an @interface, unless the receiver was also typed
with a protocol list.
In gcc/testsuite/:
2011-06-02 Nicola Pero <nicola.pero@meta-innovation.com>
* config/i386/constraints.md (Y4): New constraint.
* config/i386/sse.md (vec_set<mode>_0): Merge with
*vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
(*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
*vec_extractv2di_1_sse.
(*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
and *vec_concatv2di_rex64_sse.
Steven G. Kargl [Thu, 2 Jun 2011 17:39:11 +0000 (17:39 +0000)]
re PR fortran/49265 (Double colon in procedure-stmt (generic interface))
2011-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/49265
* decl.c (gfc_match_modproc): Allow for a double colon in a module
procedure statement.
* parse.c ( decode_statement): Deal with whitespace around :: in
gfc_match_modproc.
2011-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/49265
* gfortran.dg/module_procedure_double_colon_1.f90: New test.
* gfortran.dg/module_procedure_double_colon_2.f90: New test.
Kaz Kojima [Wed, 1 Jun 2011 22:36:08 +0000 (22:36 +0000)]
sh.c (expand_cbranchdi4): Use a scratch register if needed when original operands are used for msw_skip...
* config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
needed when original operands are used for msw_skip comparison.
* gcc.c-torture/compile/pr49238.c: New.
Sofiane Naci [Wed, 1 Jun 2011 21:51:25 +0000 (21:51 +0000)]
g2.c: Skip test in -mthumb.
2011-06-01 Sofiane Naci <sofiane.naci@arm.com>
* gcc.target/arm/g2.c: Skip test in -mthumb.
Skip test unless cpu is xscale.
* gcc.target/arm/scd42-2.c: Likewise.
* gcc.target/arm/mmx-1.c: Skip test in -mthumb.
libgcc:
* Makefile.in (cpu_type): Define.
* config.host (i[34567]86-*-rtems*): Handle it.
(i[34567]86-*-solaris2*): Move body ...
(*-*-solaris2*): ... here.
New case, generalize.
(sparc-*-elf*): Handle it.
(sparc-*-linux*, sparc64-*-linux*): Replace sparc/t-crtfm by t-crtfm.
(sparc-*-rtems*, sparc64-*-rtems*); Handle it.
(sparc64-*-solaris2*, sparcv9-*-solaris2*, sparc-*-solaris2*):
Fold into ...
(sparc*-*-solaris2*): ... this.
New case.
(sparc64-*-elf*): Handle it.
* config/gmon-sol2.c: Move from ../gcc/config/sparc.
Merge ../gcc/config/i386/gmon-sol2.c.
* config/i386/sol2-c1.S: Move from ../gcc/config/i386/sol2-c1.asm.
Use C comments.
Merge ../gcc/config/i386/sol2-gc1.asm.
* config/i386/sol2-ci.S: Move from ../gcc/config/i386/sol2-ci.asm.
Use C comments.
* config/i386/sol2-cn.S: Move from ../gcc/config/i386/sol2-cn.asm.
Use C comments.
* config/i386/t-crtfm (crtfastmath.o): Use $<.
* config/i386/t-crtstuff: New file.
* config/i386/t-softfp: New file.
* config/i386/t-sol2 ($(T)gmon.o, $(T)gcrt1.o, $(T)crt1.o),
$(T)crti.o, $(T)crtn.o): Remove.
(gcrt1.o): New rule.
(TARGET_LIBGCC2_CFLAGS): Remove.
* config/sparc/sol2-c1.S: Move from ../gcc/config/sparc/sol2-c1.asm.
* config/sparc/sol2-ci.S: Move from ../gcc/config/sparc/sol2-ci.asm.
* config/sparc/sol2-cn.S: Move from ../gcc/config/sparc/sol2-cn.asm.
* config/sparc/t-sol2: New file.
* config/sparc/t-crtfm: Move to ...
* config/t-crtfm: ... this.
Use $(cpu_type), $<.
* config/t-crtin: New file.
* config/sparc/t-softfp: New file.
* config/sparc/t-softmul: New file.
* config/t-rtems: New file.
* config/t-slibgcc: New file.
* config/t-slibgcc-elf-ver: New file.
* config/t-slibgcc-gld: New file.
* config/t-slibgcc-sld: New file.
* config/t-sol2: New file.
* configure.ac: Include ../config/lib-ld.m4.
Call AC_LIB_PROG_LD_GNU.
Substitute cpu_type.
* configure: Regenerate.
Martin Jambor [Wed, 1 Jun 2011 12:52:08 +0000 (14:52 +0200)]
ipa-utils.c (searchc_env): New field allow_overwritable.
2011-06-01 Martin Jambor <mjambor@suse.cz>
* ipa-utils.c (searchc_env): New field allow_overwritable.
(searchc): do not ignore edges to overwritable nodes if indicated
by env->allow_overwritable.
(ipa_reduced_postorder): Set env.allow_overwritable.
tree.c (free_lang_data): Do not reset boolean_type_node nor char_type_node.
2011-06-01 Richard Guenther <rguenther@suse.de>
* tree.c (free_lang_data): Do not reset boolean_type_node nor
char_type_node.
* lto-streamer.c (lto_record_common_node): Take node pointer,
do not register types.
(lto_preload_common_nodes): Explicitly skip preloading nodes
that differ between frontends.
lto/
* lto-lang.c (lto_register_canonical_types): New function.
(lto_init): Register common nodes with the canonical type machinery.
Do not play tricks with char_type_node.
Pat Haugen [Tue, 31 May 2011 20:47:37 +0000 (20:47 +0000)]
rs6000.c (rs6000_register_move_cost): Preserve from parameter value for dump.
* config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
parameter value for dump. Dump cost on outermost call only.
(rs6000_memory_move_cost): Dump cost on outermost call only.
Jakub Jelinek [Tue, 31 May 2011 19:14:21 +0000 (21:14 +0200)]
cselib.c (promote_debug_loc): Allow l->next non-NULL for cselib_preserve_constants.
* cselib.c (promote_debug_loc): Allow l->next non-NULL for
cselib_preserve_constants.
(cselib_lookup_1): If cselib_preserve_constants,
a new VALUE is being created for REG and there is a VALUE for the
same register in wider mode, add another loc with lowpart SUBREG of
the wider VALUE.
(cselib_subst_to_values): Handle ENTRY_VALUE.
* var-tracking.c (replace_expr_with_values): Return NULL for
ENTRY_VALUE too.
* dwarf2out.c (convert_descriptor_to_signed): New function.
(mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
instead of two shifts.
(mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
the right mode if needed.
(mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
(mem_loc_descriptor) <case UNSIGNED_FIX>: Use
convert_descriptor_to_signed.
(mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
BSWAP, ROTATE, ROTATERT>: Handle these rtls.
* gcc.dg/guality/bswaptest.c: New test.
* gcc.dg/guality/clztest.c: New test.
* gcc.dg/guality/ctztest.c: New test.
* gcc.dg/guality/rotatetest.c: New test.
Fabien Chêne [Tue, 31 May 2011 19:02:19 +0000 (21:02 +0200)]
re PR c++/48010 (typedef redefinitions are allowed if the redefined type is a nested class type)
gcc/cp/ChangeLog
2010-05-31 Fabien Chene <fabien@gcc.gnu.org>
PR c++/48010
* name-lookup.c (supplement_binding_1): If the old binding was a
type name, also check that the DECL actually refers to the same
type or is not a type.
Tobias Burnus [Tue, 31 May 2011 18:25:51 +0000 (20:25 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-05-31 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* resolve.c (resolve_fl_variable): Handle static coarrays
with non-constant cobounds.
(resolve_symbol): Handle SAVE statement without arguments
for coarrays.
* trans-array.c (gfc_trans_array_cobounds): New function.
(gfc_trans_array_bounds): Place code by call to it.
* trans-array.h (gfc_trans_array_cobounds): New prototype.
* trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars):
Handle static coarrays with nonconstant cobounds.
Uros Bizjak [Tue, 31 May 2011 17:43:04 +0000 (19:43 +0200)]
i386.md: Use SWI248x instead of X87MODEI...
* config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
of X87MODEI12 and SWI48x instead of SSEMODEI24.
(SWI248x): New mode iterator, rename from X87MODEI.
(X87MODEI): Remove mode iterator.
(X87MODEI12): Ditto.
(SSEMODEI24): Ditto.
Uros Bizjak [Tue, 31 May 2011 16:14:08 +0000 (18:14 +0200)]
i386.md (*movtf_internal): Avoid allocating general registers.
* config/i386/i386.md (*movtf_internal): Avoid allocating general
registers. Penalize F*r->o alternative to prevent partial memory
stalls. Slightly penalize *roF->*r alternative. Generate SSE
CONST_DOUBLE immediates when optimizing function for size. Do not move
CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
(*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
(*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
(*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
alternatives.
(*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
(fp_register_operand splitters): Use fp_register_operand
constraint. Do not use FP_REG_P in insn condition.
(any_fp_register_operand splitters): Use any_fp_register_operand
constraint. Do not use ANY_FP_REG_P in insn condition.
Jan Hubicka [Tue, 31 May 2011 14:58:49 +0000 (16:58 +0200)]
cgraph.h (cgraph_inline_failed_t): Give enum a name
* cgraph.h (cgraph_inline_failed_t): Give enum a name
* lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
(LTO_cgraph_tags): Add LTO_cgraph_last_tag.
(lto_output_edge): Use output_enum and var_len_unsigned.
(lto_output_varpool_node): Likewise.
(input_overwrite_node): Do not take resolution parameter;
extract it from a bitpack.
(input_node): Do not read resolution; use input_enum and
var_len_unsigned.
(input_varpool_node): Likewise.
(input_edge): Likewise.
(input_cgraph_1): Likewise.
Paolo Carlini [Tue, 31 May 2011 12:50:31 +0000 (12:50 +0000)]
basic_string.h: Use noexcept per the FDIS (minus compare(const string&)...
2011-05-31 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/basic_string.h: Use noexcept per the FDIS (minus
compare(const string&), which uses char_traits::compare, which
isn't noexcept; also no noexcept in the move assignment operator
and move assign, see c++std-lib-30855).
* include/bits/basic_string.tcc: Likewise.
* include/ext/vstring.h: Likewise.
* include/ext/vstring.tcc: Likewise.
* include/debug/string: Likewise.
Jakub Jelinek [Tue, 31 May 2011 12:34:42 +0000 (14:34 +0200)]
re PR rtl-optimization/49235 (ICE: in int_mode_for_mode, at stor-layout.c:424 with -O -fno-delete-null-pointer-checks -fno-tree-scev-cprop -ftree-vectorize -fno-vect-cost-model)
PR rtl-optimization/49235
* tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
(create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
Richard Guenther [Tue, 31 May 2011 09:37:46 +0000 (09:37 +0000)]
tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename to ...
2011-05-31 Richard Guenther <rguenther@suse.de>
* tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
to ...
(forward_propagate_into_comparison_1): ... this.
(forward_propagate_comparison): Rename to ...
(forward_propagate_into_comparison): ... this. Split out
real forward propagation code to ...
(forward_propagate_comparison): ... this.
(forward_propagate_into_gimple_cond): Remove looping.
(forward_propagate_into_cond): Likewise.
(simplify_not_neg_expr): Return whether we have done something.
(simplify_gimple_switch): Likewise.
(tree_ssa_forward_propagate_single_use_vars): Rename to ...
(ssa_forward_propagate_and_combine): ... this. Re-structure
to do a forward forward-propagation walk on BBs and a backward
stmt combining walk on BBs. Consistently re-scan changed
statements.
(pass_forwprop): Adjust.