Eric Botcazou [Mon, 17 May 2004 21:05:51 +0000 (21:05 +0000)]
re PR rtl-optimization/11841 (The code compiled with -funroll-loops crashes)
PR optimization/11841
* loop.h (REGNO_LAST_NOTE_LUID): New macro.
* unroll.c (unroll_loop): Take into account notes when deciding
whether a pseudo is local to the loop.
Gabriel Dos Reis [Sun, 16 May 2004 22:52:19 +0000 (22:52 +0000)]
backport: call.c (build_conditional_expr): Do not call force_rvalue for operands of void_type when...
Backport from mainline:
2004-03-18 Mark Mitchell <mark@codesourcery.com>
* call.c (build_conditional_expr): Do not call force_rvalue for
operands of void_type when the conditional expression itself
has void type.
Gabriel Dos Reis [Sun, 16 May 2004 20:27:22 +0000 (20:27 +0000)]
backport: re PR middle-end/15054 (Bad code due to overlapping stack temporaries)
Backport from mainline
2004-05-01 Ulrich Weigand <uweigand@de.ibm.com>
PR middle-end/15054
* expr.c (expand_expr_real): Do not call preserve_temp_slots
on a TARGET_EXPR temp.
* function.c (assign_stack_temp_for_type): Set 'keep' flag for
TARGET_EXPR temp slots.
Kaz Kojima [Thu, 13 May 2004 14:28:34 +0000 (14:28 +0000)]
re PR target/15130 ([3.3/3.4][sh4-linux] miscompilation with -O2)
PR target/15130
* config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
* config/sh/sh.c (output_stack_adjust): Generate a special
push/pop sequence when failing to get a temporary register for
non SHmedia epilogue.
(sh_expand_epilogue): Add an argument to show whether it's for
sibcall or not. Take the sibcall epilogue into account.
(sh_need_epilogue): Call sh_expand_epilogue with 0.
* config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
with 1.
(epilogue): Call sh_expand_epilogue with 0.
Kaveh R. Ghazi [Sat, 8 May 2004 21:52:47 +0000 (21:52 +0000)]
alias.c (set_reg_known_value, [...]): Prototype.
* alias.c (set_reg_known_value, set_reg_known_equiv_p):
Prototype.
(get_reg_known_value, set_reg_known_value,
get_reg_known_equiv_p, set_reg_known_equiv_p): Use traditional
style function definitions.
(set_reg_known_equiv_p): Change parameter from bool to int.
Backport:
2003-06-13 Matt Kraai <kraai@alumni.cmu.edu>
* unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE.
* unwind-pe.h (size_of_encoded_value): Do not define if
NO_SIZE_OF_ENCODED_VALUE is defined.
2003-10-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when
appropriate.
2003-05-07 Richard Henderson <rth@redhat.com>
* unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
not _Unwind_Word.
cp:
* Make-lang.in (cp/init.o): Depend on diagnostic.h.
* except.c (do_free_exception): Prototype.
* init.c: Include "diagnostic.h".
backport: re PR c++/14724 (Destructor not called on backwards goto past initialization)
Backport from gcc-3_4-branch:
2004-03-30 Mark Mitchell <mark@codesourcery.com>
PR c++/14724
* decl.c (start_decl_1): Do not decide whether or not to
create a
new cleanup level until after the type has been completed.
* expr.c (expand_expr_real) <NOP_EXPR>: Return a new
pseudo when converting from a sub-word source to a
larger-than-word register which conflicts with the source.
- Checkin the updated patch:
* expr.c (convert_move): Copy the source to a new pseudo
when converting from a sub-word source to a larger-than-word
register which conflicts with the source.
backport: re PR rtl-optimization/14235 (ICE in verify_local_live_at start (flow.c:546))
2004-04-29 Matthias Klose <doko@debian.org>
Backport:
2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/14235
* expr.c (expand_expr_real) <NOP_EXPR>: Return a new
pseudo when converting from a sub-word source to a
larger-than-word register which conflicts with the source.
2004-04-29 Matthias Klose <doko@debian.org>
Backport:
2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
H.J. Lu [Wed, 28 Apr 2004 17:00:03 +0000 (17:00 +0000)]
re PR target/15084 (-O/-O2 generate wrong code on structure modification)
2004-04-28 H.J. Lu <hongjiu.lu@intel.com>
PR target/15084
* config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
and renamed to movdi_insv_1_rex64.
(insv): Support SImode for 32bit and DImode for 64bit.
re PR bootstrap/14671 (caller-save.c:491: internal compiler error: Segmentation fault)
PR bootstrap/14671
* alias.c (alias_invariant, alias_invariant_size): Mark GTY.
(reg_known_value, reg_known_value_size): Likewise; make static.
(reg_known_equiv_p): Make static.
(clear_reg_alias_info): Update for new indexing.
(get_reg_known_value, set_reg_known_value): New.
(get_reg_known_equiv_p, set_reg_known_equiv_p): New.
(canon_rtx): Use them.
(init_alias_analysis): Likewise. Allocate reg_known_value with gc.
Don't play queer offsetting games with reg_known_value and
reg_known_equiv_p.
(end_alias_analysis): Don't free reg_known_value.
* rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
* sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
(deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
functions instead.
pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
* pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
* pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
SAR register. Fix comment.
(ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
(%cr11).
Paul Brook [Tue, 20 Apr 2004 10:29:19 +0000 (10:29 +0000)]
re PR c++/2123 (Array initializer)
PR 2123
* g++.dg/expr/anew1.C: XFAIL and make reproducible. Call abort on
failure and exit(0) on success.
* g++.dg/expr/anew2.C: Ditto.
* g++.dg/expr/anew3.C: Ditto.
* g++.dg/expr/anew4.C: Ditto.
Matthias Klose [Tue, 30 Mar 2004 20:43:45 +0000 (20:43 +0000)]
backport: [multiple changes]
2004-03-30 Matthias Klose <doko@debian.org>
Backport:
2004-01-14 Richard Earnshaw <rearnsha@arm.com>
PR bootstrap/12527
* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
Move linux-gas.h and linux-elf.h before aout.h.
* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
2003-05-15 Philip Blundell <philb@gnu.org>
* config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale.
All uses updated.
(arm_tune_xscale): New variable.
(arm_override_options): Set it.
(arm_adjust_cost): Use it in place of arm_arch_xscale.
(arm_gen_load_multiple): Likewise.
(arm_gen_store_multiple): Likewise.
* config/arm/arm.md (is_xscale): Likewise.
* config/arm/arm.h (arm_tune_xscale): Declare.