2003-05-02 Andrew Pinski <pinskia@physics.uc.edu>
* gcse.c (gcse_constant_p): COMPARE of the same registers is a constant
if they are not floating point registers.
From-SVN: r69471
2003-07-16 Andrew Pinski <pinskia@physics.uc.edu>
ChangeLog:
PR c/10962
* ggc.h: Add header guards.
* c-decl.c (finish_struct): Sort fields if
number greater than 15 and there are no
anonymous structs/unions.
* c-common.h: Include ggc.h.
(sorted_fields_type): New struct.
(field_decl_cmp): New prototype.
(resort_sorted_fields): New prototype.
(DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro.
* c-tree.h: (lang_type): Use pointer to sorted_fields_type
as s, removing other fields.
* c-typeck.c (lookup_field): Use s in lang_type.
These were mostly moved from cp/class.c:
* c-common.c (field_decl_cmp): New static function.
(field_decl_cmp): New function.
(resort_sorted_fields): New function.
cp/ChangeLog:
* class.c (field_decl_cmp): Remove.
(resort_field_decl_cmp): Remove.
(resort_sorted_fields): Remove.
(add_fields_to_vec): Rename to ...
(add_fields_to_record_type): this.
(finish_struct_1): Change to be using
sorted_fields_type's fields.
* cp-tree.h (lang_decl): In lang_decl_u3
change sorted_fields to be a pointer to
sorted_fields_type.
(resort_sorted_fields): Remove prototype.
* search.c (lookup_field_1): Change to be using
sorted_fields_type's fields.
From-SVN: r69470
* config/mmix/mmix-protos.h: Convert prototypes to ISO C90.
* config/mmix/mmix.c: Convert functions to ISO C90.
(mmix_eh_return_handler_rtx, mmix_output_shifted_value): Tweak
formatting.
(mmix_get_hard_reg_initial_val): Tweak section head comment.
From-SVN: r69466
PR c++/5421
* decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend
is a member of other class.
* friend.c (do_friend): Don't build TEMPLATE_DECL if friend
is a specialization of function template.
* g++.dg/template/friend21.C: New test.
From-SVN: r69457
* unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define.
(uw_update_context_1): Use it.
* config/rs6000/rs6000.c (insn_after_throw): Remove.
(rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location
in parent frame if _Unwind_* called directly instead of through
.plt.
(rs6000_emit_eh_toc_restore): Remove.
(rs6000_emit_prologue): Update stack pointer before doing any saving
if current_function_calls_eh_return. Generate unwind info for $r2.
(rs6000_emit_epilogue): Restore stack pointer after doing all
restoring if current_function_calls_eh_return. Restore $r2.
* config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove.
* config/rs6000/rs6000.md (eh_return): Remove call to
rs6000_emit_eh_toc_restore.
* config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define.
* config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define.
* gcc.dg/cleanup-8.c: New test.
* gcc.dg/cleanup-9.c: New test.
From-SVN: r69450
* expr.c (emit_block_move): Don't move anything if size is const 0.
(clear_storage): Test against const0_rtx instead of comparing INTVAL
against 0.
From-SVN: r69441
2003-07-15 David S. Miller <davem@redhat.com>
* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only
emit nop if the last real insn is CALL_INSN.
From-SVN: r69440
* g++.dg/ext/dll-MI1.h: New file.
* g++.dg/ext/dllexport-MI1.C: New file.
* g++.dg/ext/dllimport-MI1.C: New file.
ChangeLog: Remove 'testsuite/' from 2003-07-04 entry.
From-SVN: r69432
* config/i386/winnt.c (associated_type): Artificial methods are not
affected by the import/export status of their class unless they are
COMDAT.
(i386_pe_dllimport_p): Do not mark artificial methods as dllimport.
* config/i386/winnt.c: Fix GCC copyright comment.
From-SVN: r69431
2003-07-15 J"orn Rennecke <joern.rennecke@superh.com>
* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes):
If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode.
2003-07-15 J"orn Rennecke <joern.rennecke@superh.com>
Richard Henderson <rth@redhat.com>
* unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table
to decide if to access a _Unwind_Ptr or a _Unwind_Word.
(_Unwind_SetGR): Likewise.
(_Unwind_GetPtr, _Unwind_SetSpColumn): New functions.
(Unwind_SpTmp): New typedef.
(uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr.
(uw_update_context): Use _Unwind_GetPtr.
(init_dwarf_reg_size_table): Move above uw_init_context_1.
(uw_init_context_1): Initialize dwarf_reg_size_table if necessary.
Use _Unwind_SetSpColumn.
(uw_install_context_1): Don't initialize dwarf_reg_size_table.
Use _Unwind_GetPtr.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r69424
PR debug/11473
* dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of
base classes.
PR debug/11473
* g++.dg/debug/debug8.C: New test.
From-SVN: r69414
PR target/10795
* config/i386/i386.c (ix86_expand_carry_flag_compare): Don't
swap comparison operands if doing so would generate an
unrecognizable insn.
From-SVN: r69407
PR optimization/11320
* sched-int.h (struct deps) [reg_conditional_sets]: New field.
(struct sched_info) [compute_jump_reg_dependencies]: New prototype.
* sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
current_sched_info->compute_jump_reg_dependencies. Record which
registers are used and which registers are set by the jump.
Clear deps->reg_conditional_sets after a barrier.
Set deps->reg_conditional_sets if the insn is a COND_EXEC.
Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
(init_deps): Initialize reg_conditional_sets.
(free_deps): Clear reg_conditional_sets.
* sched-ebb.c (compute_jump_reg_dependencies): New prototype.
Mark registers live on entry of the fallthrough block and conditionally
set as set by the jump. Mark registers live on entry of non-fallthrough
blocks as used by the jump.
* sched-rgn.c (compute_jump_reg_dependencies): New prototype.
Mark new parameters as unused.
From-SVN: r69401
* gcc.dg/pch/inline-3.c: New file.
* gcc.dg/pch/inline-3.hs: New file.
* gcc.dg/pch/inline-4.c: New file.
* gcc.dg/pch/inline-4.hs: New file.
From-SVN: r69378
* fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass
with __cplusplus, not "we must use the C++ compiler's type"
* fixinc/inclhack.def (void_null): Note that Interix needs this.
* fixinc/fixincl.x: Regenerate.
From-SVN: r69373