110103 Commits

Author SHA1 Message Date
Andrew Haley
2558c6054e natClass.cc (finalize): Make sure that the class really has an engine.
2011-07-12  Andrew Haley  <aph@redhat.com>

	* java/lang/natClass.cc (finalize): Make sure that the class
	really has an engine.

From-SVN: r176199
2011-07-12 12:50:36 +00:00
Martin Jambor
ab079773d3 cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2011-07-12  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_get_node_or_alias): Removed declaration.
	* cgraph.c (cgraph_get_node_or_alias): Removed.
	(change_decl_assembler_name): Changed all calls to
	cgraph_get_node_or_alias to a call to cgraph_get_node.
	(cgraph_make_decl_local): Likewise.
	* lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
	* varasm.c (default_binds_local_p_1): Likewise.
	(decl_binds_to_current_def_p): Likewise.

From-SVN: r176196
2011-07-12 12:29:39 +02:00
Jakub Jelinek
d5fed62d72 re PR tree-optimization/49712 (internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048)
PR tree-optimization/49712
	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.

	* gcc.c-torture/execute/pr49712.c: New test.

From-SVN: r176195
2011-07-12 11:13:06 +02:00
GCC Administrator
1be4e803d2 Daily bump.
From-SVN: r176192
2011-07-12 00:17:39 +00:00
Jason Merrill
ebfefb41d9 re PR c++/49672 ([C++0x] Internal error when passing variadic template args to a lambda function)
PR c++/49672
	* pt.c (extract_fnparm_pack): Split out from...
	(make_fnparm_pack): ...here.
	(instantiate_decl): Handle non-pack parms after a pack.
	* semantics.c (maybe_add_lambda_conv_op): Don't in a template.

From-SVN: r176183
2011-07-11 17:03:19 -04:00
Ian Lance Taylor
d983a802f6 libgo: Define CC_FOR_BUILD in Makefile.
From-SVN: r176182
2011-07-11 20:27:50 +00:00
Ian Lance Taylor
ae06570eb6 libgo/runtime: Change std::abort to abort.
From-SVN: r176181
2011-07-11 20:16:01 +00:00
Bernd Schmidt
c0b6224a6e genautomata.c (add_arc): Return void.
* genautomata.c (add_arc): Return void.  All callers changed.
	(make_automaton): Remove dead code.

From-SVN: r176179
2011-07-11 19:41:11 +00:00
Richard Henderson
7263c6d715 dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
* dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
        (DW_FRAME_POINTER_REGNUM): New.
        (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
        (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
        (dwf_regno): New.
        (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
        dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
        dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
        Use it.
        * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
        * dwarf2out.h (dwarf_frame_regnum): New.
        (struct cfa_loc): Document the domain of the reg member.

From-SVN: r176178
2011-07-11 12:30:56 -07:00
Jason Merrill
5fb8060d5b * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p.
From-SVN: r176177
2011-07-11 14:52:19 -04:00
Jason Merrill
4904b64bf7 re PR c++/44609 (Invalid template code causes infinite loop of error messages)
PR c++/44609
	* cp-tree.h (struct tinst_level): Add errors field.
	* pt.c (neglectable_inst_p, limit_bad_template_recurson): New.
	(push_tinst_level): Don't start another decl in that case.
	(reopen_tinst_level): Adjust errors field.
	* decl2.c (cp_write_global_declarations): Don't complain about
	undefined inline if its template was defined.
	* mangle.c (mangle_decl_string): Handle failure from push_tinst_level.

From-SVN: r176176
2011-07-11 14:52:12 -04:00
Paolo Carlini
848ca96f30 re PR libstdc++/49559 ([C++0x] stable_sort calls self-move-assignment operator)
2011-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/49559
	* include/bits/stl_algo.h (__move_merge_backward): Remove.
	(__move_merge_adaptive, __move_merge_adaptive_backward): New.
	(__merge_adaptive): Use the latter two.
	(__rotate_adaptive): Avoid self move-assignment.
	* include/bits/stl_algobase.h (move_backward): Fix comment.
	* testsuite/25_algorithms/stable_sort/49559.cc: New.
	* testsuite/25_algorithms/inplace_merge/49559.cc: Likewise.
	* testsuite/25_algorithms/inplace_merge/moveable.cc: Extend.
	* testsuite/25_algorithms/inplace_merge/moveable2.cc: Likewise.
	* testsuite/util/testsuite_rvalref.h (rvalstruct::operator=
	(rvalstruct&&)): Check for self move-assignment.

From-SVN: r176174
2011-07-11 18:38:54 +00:00
Uros Bizjak
f9610d205a i386.c (ix86_trampoline_init): Switch arms of if expr.
* config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
	Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.

From-SVN: r176173
2011-07-11 19:57:49 +02:00
Andrew Haley
4d4a9b72be ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.
2011-07-11  Andrew Haley  <aph@redhat.com>

        * src/arm/ffi.c (FFI_INIT_TRAMPOLINE): Clear icache.

From-SVN: r176172
2011-07-11 17:50:04 +00:00
Paolo Carlini
0f509bb7d5 testsuite_allocator.h (propagating_allocator<>:: operator=(const propagating_allocator<>&)): Retun *this.
2011-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/util/testsuite_allocator.h (propagating_allocator<>::
	operator=(const propagating_allocator<>&)): Retun *this.

From-SVN: r176169
2011-07-11 17:19:53 +00:00
Jakub Jelinek
96ae7458c0 re PR debug/49676 (inefficiency: DW_AT_GNU_call_site_value calculates everything << 32)
PR debug/49676
	* dwarf2out.c (int_shift_loc_descriptor): New function.
	(int_loc_descriptor): If shorter, emit i as
	(i >> shift), shift, DW_OP_shl for suitable shift value.
	Similarly, try to optimize large negative values using
	DW_OP_neg of a positive value if shorter.
	(size_of_int_shift_loc_descriptor): New function.
	(size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
	changes.
	(mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
	that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
	DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
	is shorter.
	(resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
	addend as added DW_OP_plus if it is shorter.

	* gcc.dg/guality/csttest.c: New test.

From-SVN: r176167
2011-07-11 18:57:25 +02:00
Jakub Jelinek
932ebb945f re PR fortran/49698 (Unmanageable compiler error)
PR fortran/49698
	* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
	inner_size to gfc_index_one_node instead of integer_one_node.

	* gfortran.dg/pr49698.f90: New test.

From-SVN: r176164
2011-07-11 18:42:29 +02:00
Rainer Orth
4a8bb046a3 configure.ac (i?86-*-solaris2*): Use libgcc copy of i386/t-crtstuff.
* configure.ac (i?86-*-solaris2*): Use libgcc copy of
	i386/t-crtstuff.
	* configure: Regenerate.

From-SVN: r176163
2011-07-11 16:39:57 +00:00
Rainer Orth
feffaec40f sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
* config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
	(DTORS_SECTION_ASM_OP): Define.

From-SVN: r176162
2011-07-11 16:35:53 +00:00
Jeff Law
699010bab1 uninit-pred-8_b.c: Disable dominator optimizations.
* gcc.dg/uninit-pred-8_b.c: Disable dominator optimizations.

From-SVN: r176160
2011-07-11 09:25:48 -06:00
Rainer Orth
516b2ca73b * EXCLUDES (libgcov.c): Remove.
From-SVN: r176158
2011-07-11 14:43:42 +00:00
Rainer Orth
2d8d59352b dfp-bit.c, dfp-bit.h: Move to ../libgcc.
gcc:
	* config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
	* config/t-dfprules: Move to ../libgcc/config.
	* config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
	i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
	i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
	(x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
	Likewise.
	(i[34567]86-*-cygwin*): Likewise.
	(i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
	* Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
	(libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
	D64PBIT_FUNCS, D128PBIT_FUNCS.

	libgcc:
	* dfp-bit.c, dfp-bit.h: New files.
	* Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): New
	variables.
	($(d32pbit-o)): Use $(srcdir) to refer to dfp-bit.c
	($(d64pbit-o)): Likewise.
	($(d128pbit-o)): Likewise.
	* config/t-dfprules: New file.
	* config.host (i[34567]86-*-linux*): Add t-dfprules to tmake_file.
	(i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-knetbsd*-gnu,
	i[34567]86-*-gnu*, i[34567]86-*-kopensolaris*-gnu): Likewise.
	(x86_64-*-linux*): Likewise.
	(x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): Likewise.
	(i[34567]86-*-cygwin*): Likewise.
	(i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.

From-SVN: r176156
2011-07-11 14:40:56 +00:00
Richard Guenther
dcc95c2088 tree-vrp.c (simplify_conversion_using_ranges): Manually translate the source value-range through the conversion chain.
2011-07-11  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (simplify_conversion_using_ranges): Manually
	translate the source value-range through the conversion chain.

From-SVN: r176154
2011-07-11 14:27:04 +00:00
H.J. Lu
f07e929dd8 Check ia32 effective target.
2011-07-11  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp: Check
	ia32.
	* go.test/go-test.exp (go-set-goarch): Likewise.

From-SVN: r176153
2011-07-11 06:29:29 -07:00
Daniel Carrera
969cc91571 Add my name (Daniel Carrera) to the "Write After Approval" list.
From-SVN: r176152
2011-07-11 12:17:55 +00:00
Richard Sandiford
28164eedaf expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
gcc/
	* expr.c (expand_expr_real_1): Use expand_insn for movmisalign.

From-SVN: r176150
2011-07-11 12:11:33 +00:00
Arthur Loiret
f305422365 config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build a bi-arch compiler defaulting to 31-bit.
2011-07-11  Arthur Loiret  <aloiret@debian.org>

        * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
        a bi-arch compiler defaulting to 31-bit. In this case:
        (tmake_file): Add s390/t-linux64.
        * doc/install.texi: Add s390-linux to the list of targets supporting
        --enable-targets=all.

From-SVN: r176146
2011-07-11 11:41:56 +00:00
Arthur Loiret
bd5ab709de config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all'...
2011-07-11  Arthur Loiret  <aloiret@debian.org>
            Matthias Klose <doko@debian.org>

        * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
        a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
        (tm_file): Add mips/linux64.h.
        (tmake_file): Add mips/t-linux64.
        (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
        * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
        instead of hardcoded mabi=n32.
        * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
        tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
        convention.

Co-Authored-By: Matthias Klose <doko@debian.org>

From-SVN: r176145
2011-07-11 11:22:15 +00:00
Andreas Krebbel
d3b7e946d7 passes.c (init_optimization_passes): Add invariant motion pass after induction variable optimization.
2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* passes.c (init_optimization_passes): Add invariant motion pass
	after induction variable optimization.

From-SVN: r176142
2011-07-11 10:23:57 +00:00
Georg-Johann Lay
7e4ec472ee re PR target/39633 ([avr] loop bug: missing 8-bit comparison (*cmpqi))
gcc/
	PR target/39633
	* config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
	offsets 1..5 set cc0 in a usable way.

testsuite/
	PR target/39633
	* gcc.target/avr/torture/pr39633.c: New test case.

From-SVN: r176141
2011-07-11 10:13:30 +00:00
Romain Geissler
0e65e6311b tree.h (call_expr_arg): Remove.
2011-07-11  Romain Geissler  <romain.geissler@gmail.com>

        * tree.h (call_expr_arg): Remove. 
        (call_expr_argp): Likewise.

From-SVN: r176140
2011-07-11 10:00:54 +00:00
Nicola Pero
a8f18c4037 In gcc/objc/: 2011-07-11 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/objc/:
2011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-encoding.h (obstack.h): Do not include.
	(util_obstack, util_firstobj): Do not declare.
	(encode_field_decl): Updated prototype to return a tree and take a
	single tree argument.  Updated comments.
	* objc-encoding.c (util_obstack, util_firstobj): Made static.
	(objc_encoding_init): New.
	(encode_field_decl): Existing function renamed to encode_field and
	made static.  New encode_field_decl wrapper function added.
	(encode_aggregate_fields): Update call to encode_field_decl to
	call encode_field.
	* objc-next-runtime-abi-02.c (obstack.h): Do not include.
	(util_obstack, util_firstobj): Do not declare.
	(build_v2_ivar_list_initializer): Updated call to
	encode_field_decl.
	* objc-runtime-shared-support.c (obstack.h): Do not include.
	(util_obstack, util_firstobj): Do not declare.
	(build_ivar_list_initializer): Updated call to encode_field_decl.
	* objc-act.c (objc_init): Use objc_encoding_init.
	* Make-lang.in (objc/objc-runtime-shared-support.o): Do not depend
	on OBSTACK_H.
	(objc/objc-gnu-runtime-abi-01.o): Likewise.
	(objc/objc-next-runtime-abi-01.o): Likewise.
	(objc/objc-next-runtime-abi-02.o): Likewise.
	(objc/objc-act.o): Likewise.
	
In gcc/objcp/:
2011-07-11  Nicola Pero  <nicola.pero@meta-innovation.com>

	* Make-lang.in (objcp/objc-runtime-shared-support.o): Do not
	depend on OBSTACK_H.
	(objcp/objc-gnu-runtime-abi-01.o): Likewise.
	(objcp/objc-next-runtime-abi-01.o): Likewise.
	(objcp/objc-next-runtime-abi-02.o): Likewise.
	(objcp/objcp-act.o): Likewise.

From-SVN: r176139
2011-07-11 09:42:23 +00:00
Eric Botcazou
18970372c2 sparc.md (save_register_window_1): Rename to...
* config/sparc/sparc.md (save_register_window_1): Rename to...
	(window_save): ...this.
	* config/sparc/sparc.c (emit_save_register_window): Rename to...
	(emit_window_save): ...this.
	(sparc_expand_prologue): Adjust to above renaming.

From-SVN: r176138
2011-07-11 09:35:35 +00:00
Tobias Burnus
790f025f34 re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-07-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray_lock_3.f90: Remove bogus dg-error.

From-SVN: r176137
2011-07-11 10:14:05 +02:00
Georg-Johann Lay
5097ad6c90 target-supports.exp (check_effective_target_scheduling): New Function.
* lib/target-supports.exp (check_effective_target_scheduling):
	New Function.
	* gcc.dg/pr46614.c: Add dg-require-effective-target scheduling.
	* gcc.dg/pr45055.c: Ditto.
	* gcc.dg/pr45353.c: Ditto.
	* g++.dg/pr45056.C: Ditto.

From-SVN: r176136
2011-07-11 07:54:17 +00:00
Georg-Johann Lay
7ae3b0b64e struct-by-value-16_main.c: Skip AVR.
* gcc.dg/compat/struct-by-value-16_main.c: Skip AVR.
	* gcc.dg/compat/struct-by-value-17_main.c: Skip AVR.
	* gcc.dg/compat/struct-by-value-18_main.c: Skip AVR.
	* g++.dg/torture/pr31863.C: Skip AVR.

From-SVN: r176135
2011-07-11 07:52:23 +00:00
GCC Administrator
6f14a85e09 Daily bump.
From-SVN: r176133
2011-07-11 00:18:57 +00:00
H.J. Lu
9e419e387c Use movl instead of movabs for x32.
2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_trampoline_init): Use movl instead
	of movabs for x32.

From-SVN: r176129
2011-07-10 14:42:08 -07:00
Richard Henderson
3db72de312 i386.c (x86_output_mi_thunk): Generate rtl and run final, instead of emitting text directly.
* config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
        run final, instead of emitting text directly.

From-SVN: r176128
2011-07-10 14:12:57 -07:00
H.J. Lu
a1f91bca13 Turn on 64bit and check models for x32.
2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_option_override_internal): Turn on
	OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
	small PIC models for TARGET_X32.

From-SVN: r176127
2011-07-10 12:25:28 -07:00
Tobias Burnus
89560a3c2c re PR fortran/49690 (ICE in gfc_typenode_for_spec, at fortran/trans-types.c:1019)
2011-07-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49690
        * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of
        * SIGNAL.

2011-07-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49690
        * gfortran.dg/intrinsic_signal.f90: New.

From-SVN: r176121
2011-07-10 16:28:48 +02:00
Jason Merrill
53130f7560 re PR c++/49691 (ICE in cp_parser_late_return_type_opt, at cp/parser.c:15562)
PR c++/49691
	* parser.c (cp_parser_late_return_type_opt): Check quals parameter
	rather than current_class_type to determine whether to set 'this'.
	(cp_parser_direct_declarator): Pass -1 to quals if member_p is false.
	(cp_parser_init_declarator): Pass down member_p.

From-SVN: r176120
2011-07-10 10:24:03 -04:00
GCC Administrator
7746ff43a6 Daily bump.
From-SVN: r176115
2011-07-10 00:17:54 +00:00
Hans-Peter Nilsson
9a0b29f0ce re PR target/49684 (build fails on crtstuff.c / crtbegin using default CRT_CALL_STATIC_FUNCTION)
PR target/49684
	* config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
	$(LIBGCC2_CFLAGS).

From-SVN: r176111
2011-07-09 22:36:12 +00:00
Hans-Peter Nilsson
a50023f9a8 re PR bootstrap/49680 (IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases)
PR bootstrap/49680
	* config/cris/cris.c (cris_asm_output_case_end): Robustify against
	stray notes and debug insns by using prev_nonnote_nondebug_insn
	instead of PREV_INSN.

From-SVN: r176110
2011-07-09 22:35:43 +00:00
Tobias Burnus
f6da75edeb error.c (sys_abort): Change argument list from "()" to "(void)".
2011-07-09  Tobias Burnus  <burnus@net-b.de>

        * runtime/error.c (sys_abort): Change argument list
        from "()" to "(void)".

From-SVN: r176109
2011-07-09 23:22:44 +02:00
Richard Henderson
948d330ea9 dwarf2: Move CFI output routines to dwarf2cfi.c.
* defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
        DWARF_TYPE_SIGNATURE_SIZE): Move from ...
        * dwarf2out.c: ... here.
        (output_all_cfis): Remove.
        (dwarf2out_switch_text_section): Use output_cfis directly.
        (size_of_locs): Export.
        (output_loc_sequence, output_loc_sequence_raw): Export.
        (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
        output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
        output_cfa_loc_raw): Move to ...
        * dwarfcfi.c: ... here.
        * dwarf2out.h: Update decls.

From-SVN: r176107
2011-07-09 13:56:42 -07:00
Richard Henderson
db42e39d81 dwarf2: Reduce some redundant definitions.
Move some definitions to defaults.h; some simply aren't needed
anymore in the respective dwarf2{cfi,out}.c files.

        * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
        DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
        * dwarf2cfi.c: ... here.
        (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
        (DWARF_ROUND, DWARF_CIE_ID): Remove.
        * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
        (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
        (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.

From-SVN: r176102
2011-07-09 13:43:06 -07:00
Richard Henderson
a8e5c0e77e dwarf2cfi: Handle return column save from CIE.
When we record a save of the return column in the CIE, remember
that while processing the FDE.  This requires propagating the
handling of PC_RTX as a representative of the return column to
more locations.

MIPS had been handling this case by hand, and is no longer required.

        * dwarf2cfi.c (cie_return_save): New.
        (queue_reg_save): Use compare_reg_or_pc.
        (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
        (dwarf2out_frame_debug_expr): Likewise.
        (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
        (initial_return_save): Likewise.
        (execute_dwarf2_frame): Save and restore initial return save from
        the cie to the fde.
        * config/mips/mips.c (mips_frame_set): Remove special case for
        DWARF_FRAME_RETURN_COLUMN.

From-SVN: r176099
2011-07-09 13:39:00 -07:00
Richard Henderson
4a8ee12241 dwarf2cfi: Simplify re-initialization for each function.
There's no point calling lookup_cfa to re-create the CFA
we initialized just a few lines above.

        * dwarf2cfi.c (lookup_cfa): Remove.
        (execute_dwarf2_frame): Assert queues are empty on entry.
        Setup initial cfa directly, not via lookup_cfa.
        Don't clear args_size state here.

From-SVN: r176098
2011-07-09 13:30:07 -07:00