Commit Graph

94150 Commits

Author SHA1 Message Date
Jakub Jelinek
ff35822bca rs6000.c (rs6000_emit_stack_reset): Return generated insn if it is changing sp.
* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
	insn if it is changing sp.  Use gen_add3_insn instead of
	conditionally gen_addsi3 and gen_adddi3.
	(offset_below_red_zone_p): New static inline function.
	(rs6000_emit_epilogue): Emit needed epilogue unwind info.
	Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
	* config/rs6000/ppc-asm.h: Include auto-host.h.
	(CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
	CFI_RESTORE): Define.
	* config/rs6000/crtresxgpr.asm: Add unwind info.
	* config/rs6000/crtresxfpr.asm: Likewise.
	* config/rs6000/crtresgpr.asm: Likewise.
	* config/rs6000/crtresfpr.asm: Likewise.
	* config/rs6000/crtsavgpr.asm: Likewise.
	* config/rs6000/crtsavfpr.asm: Likewise.

From-SVN: r148138
2009-06-03 19:28:00 +02:00
Jakub Jelinek
679f33542d dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second argument of DWARF2_FRAME_REG_OUT macros.
* dwarf2out.c (output_cfi_directive): Pass 1 instead of
	0 to second argument of DWARF2_FRAME_REG_OUT macros.

From-SVN: r148137
2009-06-03 19:26:48 +02:00
Julian Brown
2e94c12d07 arm.c (arm_hard_regno_mode_ok): Permit values of four words or less (including TImode) in core registers.
* config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
	words or less (including TImode) in core registers.

From-SVN: r148135
2009-06-03 16:01:38 +00:00
Richard Guenther
3111cce0d9 re PR middle-end/40328 (internal compiler error: in set_ssa_val_to, at tree-ssa-sccvn.c:1811)
2009-06-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/40328
	* fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.

	* gcc.dg/torture/pr40328.c: New testcase.

From-SVN: r148134
2009-06-03 15:30:52 +00:00
Andrey Belevantsev
5e1b50f68b statistics.c (statistics_counter_event): Do not record event in pass dump if its number == -1.
* statistics.c (statistics_counter_event): Do not record event
        in pass dump if its number == -1.
        (curr_statistics_hash): Add assert that we never get passes
        with static number == -1.

From-SVN: r148131
2009-06-03 18:36:47 +04:00
Richard Guenther
6f11d6900d cfgexpand.c (discover_nonconstant_array_refs_r): Make only non-BLKmode arrays addressable.
2009-06-03  Richard Guenther  <rguenther@suse.de>
            Andrey Belevantsev  <abel@ispras.ru>

        * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
        non-BLKmode arrays addressable.


Co-Authored-By: Andrey Belevantsev <abel@ispras.ru>

From-SVN: r148130
2009-06-03 18:33:31 +04:00
Maxim Kuvyrkov
8896147199 linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
* config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
	* config/m68k/m68k.h: ... here.
	* testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
	m68k and fido.

From-SVN: r148127
2009-06-03 12:00:32 +00:00
Martin Jambor
9961eb4568 re PR tree-optimization/40323 (compiling just takes forever and doesn't really process)
2009-06-03  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/40323
	* ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
	assignment.

	* testsuite/g++.dg/torture/pr40323.C: New file.

From-SVN: r148126
2009-06-03 13:56:05 +02:00
Eric Botcazou
cdaa0e0b8c decl.c (gnat_to_gnu_entity): When adjusting the discriminant nodes in an extension...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: When
	adjusting the discriminant nodes in an extension, use the full view
	of the parent subtype if it is of a private kind.

From-SVN: r148125
2009-06-03 10:52:40 +00:00
Eric Botcazou
a6a29d0c39 decl.c (gnat_to_gnu_entity): Add the _Parent field, if any, to the record before adding the other fields.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Add the
	_Parent field, if any, to the record before adding the other fields.
	<E_Record_Subtype>: Put the _Controller field before the other fields
	except for the _Tag or _Parent fields.
	(components_to_record): Likewise.  Retrieve the _Parent field from the
	record type.

From-SVN: r148124
2009-06-03 10:39:42 +00:00
Paolo Carlini
110a123aae re PR libstdc++/40296 ([C++0x] std::exception_ptr comparisons)
2009-06-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40296
	* libsupc++/exception_ptr.h (exception_ptr::operator!,
	exception_ptr::operator __safe_bool): Only declare when
	_GLIBCXX_EH_PTR_COMPAT is undefined.
	* libsupc++/eh_ptr.cc: Define _GLIBCXX_EH_PTR_COMPAT before including
	exception_ptr.
	* testsuite/18_support/exception_ptr/40296.cc: New.
	* testsuite/18_support/nested_exception/throw_with_nested.cc: Adjust.
	* testsuite/18_support/nested_exception/cons.cc: Likewise.
	* testsuite/18_support/nested_exception/nested_ptr.cc: Likewise.
	* testsuite/18_support/exception_ptr/current_exception.cc: Likewise.

From-SVN: r148122
2009-06-03 10:37:20 +00:00
Eric Botcazou
8cd281486b decl.c (substitution_list): Rename to build_subst_list, remove unused parameter and simplify.
* gcc-interface/decl.c (substitution_list): Rename to build_subst_list,
	remove unused parameter and simplify.
	(gnat_to_gnu_entity) <E_Record_Type>: Do not set TYPE_FIELDS.  Factor
	common predicate.  Rewrite loop for clarity.  Use GNU_TYPE directly
	as context for all discriminants.  Fix formatting nits.
	<E_Record_Subtype>: Add cosmetic 'break'.  Test Has_Discriminants
	before Discriminant_Constraint.  Adjust for above renaming.  Do not
	set GNU_TYPE more than once.
	(elaborate_entity): Test Has_Discriminants on the entity and use
	Implementation_Base_Type.
	(components_to_record): Rename component_list to gnat_component_list.
	Retrieve the _Parent field from the list.  Fix nits in comments.
	Clarify logic in loop.  Pass correct arguments to create_field_decl.

From-SVN: r148121
2009-06-03 10:26:20 +00:00
Richard Guenther
2f2c62a01c tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE consistently.
2009-06-03  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
	consistently.

From-SVN: r148120
2009-06-03 09:54:09 +00:00
Shujing Zhao
f353609778 predicates.md: Use REG_P...
2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
	JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
	JUMP_TABLE_DATA_P where applicable.
	* config/sh/sh.c: Ditto.
	* config/sh/sh.h: Ditto.
	* config/sh/sh.md: Ditto.
	* config/sh/symbian.c: Ditto.

From-SVN: r148119
2009-06-03 09:36:50 +00:00
Shujing Zhao
d6ced3b79d predicates.md: Use REG_P...
2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
	JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
	JUMP_TABLE_DATA_P where applicable.
	* config/sh/sh.c: Ditto.
	* config/sh/sh.h: Ditto.
	* config/sh/sh.md: Ditto.
	* config/sh/symbian.c: Ditto.

From-SVN: r148118
2009-06-03 09:36:23 +00:00
Eric Botcazou
40d0d9e448 Fix nits
From-SVN: r148116
2009-06-03 06:51:13 +00:00
Uros Bizjak
f3afc8a7c4 driver-i386.c (describe_cache): Optimize concatenation of strings.
* config/i386/driver-i386.c (describe_cache): Optimize
	concatenation of strings.  Use snprintf instead of sprintf.
	(host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
	target when not compiling with GCC.

From-SVN: r148115
2009-06-03 08:33:31 +02:00
Jerome Guitton
394e919561 Makefile.tpl (all): Avoid a trailing backslash.
* Makefile.tpl (all): Avoid a trailing backslash.
        * Makefile.in: Regenerate.

Co-Authored-By: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>

From-SVN: r148113
2009-06-03 05:41:22 +00:00
Mark Mitchell
a3a7bf5fd7 * decl.c (maybe_deduce_size_from_array_init): Use relayout_decl.
From-SVN: r148111
2009-06-03 03:07:49 +00:00
Mark Mitchell
7656ecbc77 * g++.dg/init/ref15.C: Require unwrapped targets.
From-SVN: r148110
2009-06-03 00:50:43 +00:00
GCC Administrator
d55a1c921a Daily bump.
From-SVN: r148109
2009-06-03 00:17:19 +00:00
Ben Elliston
47bca6aa34 * config.sub, config.guess: Update from upstream sources.
From-SVN: r148105
2009-06-03 09:00:35 +10:00
Kaz Kojima
1964788a31 sh.c: Revert last change.
* config/sh/sh.c: Revert last change.
	(sh_expand_epilogue): Emit a blockage insn before the frame
	pointer adjustment unconditionally.

From-SVN: r148103
2009-06-02 21:17:36 +00:00
Richard Sandiford
8633c31574 pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
gcc/
	* config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
	* config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
	* config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
	* gcc.c (set_collect_gcc_options): Don't add -fwhole-program
	to COLLECT_GCC_OPTIONS.

From-SVN: r148099
2009-06-02 19:15:26 +00:00
Richard Sandiford
70ed7339f7 crossconfig.m4 (GLIBCXX_CROSSCONFIG): Handle AIX targets.
libstdc++-v3/
	* crossconfig.m4 (GLIBCXX_CROSSCONFIG): Handle AIX targets.
	* configure: Regenerate.

From-SVN: r148098
2009-06-02 19:15:03 +00:00
Richard Sandiford
781a1758a4 collect2.c (target_system_root): New variable.
gcc/
	* collect2.c (target_system_root): New variable.
	(main): Handle --sysroot=.
	(ignore_library): Strip the sysroot from the library path.

From-SVN: r148097
2009-06-02 19:08:28 +00:00
Richard Sandiford
dfb636dcd0 Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
gcc/
	* Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
	(collect2.o): Depend on collect2-aix.h.
	(collect2-aix.o): New rule.
	* collect2-aix.h: New file.
	* collect2-aix.c: Likewise.
	* collect2.c: Include collect2-aix.h.  Don't undefine
	OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
	Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
	Use TARGET_AIX_VERSION instead of _AIX51.
	* config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
	* config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
	* config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
	* config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
	* config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.

From-SVN: r148096
2009-06-02 19:06:56 +00:00
Richard Sandiford
51136ae818 collect2.c (ignore_library): Avoid premature post-increment and null deference.
gcc/
	* collect2.c (ignore_library): Avoid premature post-increment
	and null deference.

From-SVN: r148095
2009-06-02 19:04:39 +00:00
Richard Sandiford
7f142d333a Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
gcc/
	* Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
	* config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
	!CROSS_DIRECTORY_STRUCTURE alternative and use it for
	CROSS_DIRECTORY_STRUCTURE too.
	(LINK_LIBG_SPEC): Likewise.
	(LIB_SPEC): Add %R to sysroot paths.
	* config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
	(CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
	* config/rs6000/aix51.h: As for aix43.h.
	* config/rs6000/aix52.h: Likewise.
	* config/rs6000/aix53.h: Likewise.
	* config/rs6000/aix61.h: Likewise.
	* config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
	to the beginning of sysroot paths.

From-SVN: r148094
2009-06-02 19:02:49 +00:00
Richard Sandiford
a891a4733d configure.ac (powerpc-*-aix*, [...]): Add target-newlib to noconfdirs.
* configure.ac (powerpc-*-aix*, rs6000-*-aix*): Add target-newlib
	to noconfdirs.
	* configure: Regenerate.

From-SVN: r148093
2009-06-02 19:01:35 +00:00
Alexandre Oliva
9e74b7d2a4 print_rtl (print_rtx): Don't print modes in EXPR_LISTs and INSN_LISTs that are out of the REG_NOTE range.
* print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
INSN_LISTs that are out of the REG_NOTE range.

From-SVN: r148091
2009-06-02 17:51:00 +00:00
Alexandre Oliva
a9f6eceee7 loop-unroll.c (struct iv_to_split): Add pointer to next.
* loop-unroll.c (struct iv_to_split): Add pointer to next.
(struct var_to_expand): Likewise.
(struct opt_info): Add head and tail for linked lists of the above.
(analyze_insn_to_expand_var): Initialize next.
(analyze_iv_to_split_insn): Likewise.
(analyze_insns_in_loop): Create linked lists.
(allocate_basic_variable): Simplify for use without hash table.
(insert_var_expansion_initialization): Likewise, make it type-safer.
(combine_var_copies_in_loop_exit): Likewise.
(apply_opt_in_copies): Walk lists rather than hash tables.
(release_var_copies): Simplified and inlined by hand into...
(free_opt_info): ... this function.

From-SVN: r148090
2009-06-02 17:47:33 +00:00
Jason Merrill
4ea08463a7 re PR c++/40308 (Brace initialization fails for member initializers in constructor for class templates)
PR c++/40308
	PR c++/40311
	* typeck.c (cp_build_modify_expr): Always pass init-lists to the
	conversion code.
	* call.c (implicit_conversion): Allow init-list conversion to scalar
	during direct-initialization, too.  Mark the conversion bad if it
	has too many levels of braces.
	(convert_like_real): And give a helpful error.

From-SVN: r148089
2009-06-02 13:02:38 -04:00
Jason Merrill
ccafc19b5b re PR c++/40306 (ICE when using auto to declare a local copy inside a member function)
PR c++/40306
	PR c++/40307
	* decl.c (cp_finish_decl): Handle auto deduction from ().
	* typeck.c (build_x_indirect_ref): Handle dereferencing an operand
	with dependent type that is known to be a pointer.

From-SVN: r148088
2009-06-02 13:02:27 -04:00
Richard Guenther
69596c692d tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE for field decls.
2009-06-02  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
	for field decls.

From-SVN: r148086
2009-06-02 15:33:29 +00:00
Eric Botcazou
beb7e0305d * gcc-interface/Make-lang.in: Fix formatting.
From-SVN: r148083
2009-06-02 11:16:09 +00:00
Paolo Carlini
a67b92c3d7 re PR libstdc++/40299 (Rope + C++0x mode = build error)
2009-06-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40299
	* include/ext/memory: Fully qualify calls with __gnu_cxx.
	* testsuite/ext/rope/40299.cc: New.

From-SVN: r148081
2009-06-02 09:06:31 +00:00
Alexandre Oliva
70cb2d9f66 Makefile.tpl ([+compare-target+]): Compare all stage directories, rather than just gcc.
* Makefile.tpl ([+compare-target+]): Compare all stage
directories, rather than just gcc.
* Makefile.in: Rebuilt.

From-SVN: r148080
2009-06-02 08:12:04 +00:00
Alexandre Oliva
2feb56e679 * compare-debug: Don't fail just because of .eh_frame differences.
From-SVN: r148079
2009-06-02 08:11:31 +00:00
Alexandre Oliva
fe8a77795a cfgexpand.c (gimple_expand_cfg): Discard the source location only for builtins that are not overridden.
* cfgexpand.c (gimple_expand_cfg): Discard the source location
only for builtins that are not overridden.

From-SVN: r148078
2009-06-02 08:10:53 +00:00
Alexandre Oliva
1bcca2c5e6 gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's label string.
* gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
label string.

From-SVN: r148077
2009-06-02 08:09:27 +00:00
Alexandre Oliva
8588f7979f * df-core.c (df_ref_debug): Honor -fdump-noaddr.
From-SVN: r148076
2009-06-02 08:08:57 +00:00
Alexandre Oliva
45f39d78d6 * combine.c (move_deaths): Compare LUIDs within the same BB only.
From-SVN: r148075
2009-06-02 08:08:13 +00:00
Alexandre Oliva
2aa7c49bff common.opt (fdump-unnumbered-links): New.
* common.opt (fdump-unnumbered-links): New.
* doc/invoke.texi (-fdump-unnumbered-links): Document it.
* print-rtl.c (flag_dump_unnumbered_links): New.
(print_rtx): Test it.

From-SVN: r148074
2009-06-02 08:07:13 +00:00
Richard Earnshaw
55b2829b99 arm.c (arm_get_frame_offsets): Prefer using r3 for padding a push/pop multiple to 8-byte alignment.
* arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
	push/pop multiple to 8-byte alignment.

From-SVN: r148072
2009-06-02 07:47:09 +00:00
Eric Botcazou
18d6353c18 Fix nits
From-SVN: r148071
2009-06-02 07:21:27 +00:00
Simon Martin
db10c6ecab re PR c++/38089 (g++ crash on invalid code)
gcc/cp/

2009-06-02  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/38089
	* pt.c (register_specialization): Properly setup DECL_CONTEXT for
	specializations in an invalid namespace.

gcc/testsuite/

2009-06-02  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/38089
	* g++.dg/template/spec36.C: New test.

From-SVN: r148069
2009-06-02 05:37:17 +00:00
Jakub Jelinek
0aa34d44c0 i386.c (queued_cfa_restores): New static variable.
* config/i386/i386.c (queued_cfa_restores): New static variable.
	(ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
	functions.
	(pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
	(ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
	Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
	Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
	note unconditionally.
	(ix86_emit_restore_regs_using_mov): Likewise.
	(ix86_emit_restore_sse_regs_using_mov): Likewise.
	(ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
	it through to ix86_emit_restore_reg_using_pop.
	(ix86_emit_leave): Add RED_OFFSET argument.  Call
	ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
	instead of adding REG_CFA_OFFSET note unconditionally.
	(ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
	the above functions.  Call ix86_add_queued_cfa_restore_notes when
	needed.

From-SVN: r148067
2009-06-01 21:49:57 +02:00
Jakub Jelinek
d342c045c5 dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument...
* dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
	force output of the label even for dwarf2out_do_cfi_asm.
	(add_fde_cfi): If -g2 and above and cfi might change CFA,
	force creation of CFI label and chain DW_CFA_set_loc jumping to it
	for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
	caller.
	(dwarf2out_stack_adjust, dwarf2out_frame_debug,
	dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
	dwarf2out_cfi_label callers.
	* tree.h (dwarf2out_cfi_label): Adjust prototype.
	* config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
	Adjust dwarf2out_cfi_label callers.
	* config/vax/vax.c (vax_output_function_prologue): Likewise.

From-SVN: r148066
2009-06-01 21:43:24 +02:00
Jakub Jelinek
604a6be922 i386.h (struct machine_cfa_state, [...]): Guard with ifndef USED_FOR_TARGET instead of not IN_LIBGCC2 and not in...
* config/i386/i386.h (struct machine_cfa_state,
	struct machine_function): Guard with ifndef USED_FOR_TARGET
	instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.

From-SVN: r148065
2009-06-01 21:41:43 +02:00