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.
Eric Botcazou [Mon, 22 Mar 2004 18:39:55 +0000 (19:39 +0100)]
re PR tree-optimization/14470 ([tree-ssa] trouble with post-increment)
PR middle-end/14470
* expr.c (mark_queue): New function.
(emit_insns_enqueued_after_mark): New function replacing
emit_queue. Clear the body of emitted queued insns.
(emit_queue): Call emit_insns_enqueued_after_mark.
(store_expr): Mark the increment queue on entry. Emit
only the incrementations queued when expanding the source.
Gerald Pfeifer [Sun, 21 Mar 2004 11:17:53 +0000 (11:17 +0000)]
g77.texi (Aligned Data): Remove obsolete paragraph including a broken link.
* g77.texi (Aligned Data): Remove obsolete paragraph including a
broken link.
(Floating-point Errors): Remove links to http://www.validgh.com/
which was "hijacked".
(Language): Fix link to Fortran books.
(Projects): Remove obsolete paragraph including a broken link to
ftp://alpha.gnu.org/gnu/g77/projects/.
(Trouble): Remove obsolete paragraph including a broken link to
ftp://alpha.gnu.org/g77.plan.
* invoke.texi (Overall Options): Remove broken reference to
rat7.uue (which was of dubious copyright status anyways).
Ian Lance Taylor [Wed, 17 Mar 2004 20:13:20 +0000 (20:13 +0000)]
backport: c-typeck.c (pedantic_lvalue_warning): Deprecate compound expressions as lvalues.
Backport:
2003-11-08 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (pedantic_lvalue_warning): Deprecate compound
expressions as lvalues.
* doc/extend.texi: Document that all extended lvalues are now
deprecated.
2003-11-05 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (pedantic_lvalue_warning): Deprecate use of
conditional expressions as lvalues.
2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
deprecation of casts as lvalues.
* fixinc/inclhack.def (obstack_lvalue_cast): New fix.
* fixinc/fixincl.x: Regenerate.
Gabriel Dos Reis [Sat, 13 Mar 2004 03:03:38 +0000 (03:03 +0000)]
backport: re PR tree-optimization/14470 ([tree-ssa] trouble with post-increment)
Backport:
2004-03-09 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/14470
* expr.c (store_expr): Call emit_queue before generating the move
from the temporary to the original target. Protect the temporary
from emit_queue.
Gabriel Dos Reis [Sat, 13 Mar 2004 02:31:36 +0000 (02:31 +0000)]
backport: re PR c++/14401 (Uninitialized reference error not reported.)
Backport:
2004-03-08 Mark Mitchell <mark@codesourcery.com>
PR c++/14401
* class.c (check_field_decls): Complain about non-static data
members of reference type in unions. Propagate
CLASSTYPE_REF_FIELDS_NEED_INIT and
CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of
non-static
data members.
* init.c (perform_member_init): Complain about members with const
type that are not explicitly initialized.
Gabriel Dos Reis [Sat, 13 Mar 2004 02:00:57 +0000 (02:00 +0000)]
backport: re PR c++/14230 (ICE in cp_expr_size)
Backport:
2004-03-09 Mark Mitchell <mark@codesourcery.com>
PR c++/14230
* call.c (initialize_reference): Handle initializers that are
class-member access expressions applies to rvalues.
Gabriel Dos Reis [Fri, 12 Mar 2004 22:43:29 +0000 (22:43 +0000)]
backport: re PR middle-end/13448 (gcc 3.3.2, internal error when -O3 and trying to modify function const arg)
Backport
2004-02-27 Mark Mitchell <mark@codesourcery.com>
PR middle-end/13448
* c-tree.h (readonly_warning): Rename to ...
(readonly_error): ... this.
* c-typeck.c (build_unary_op): Adjust accordingly.
(readonly_warning): Rename to ...
(readonly_error): ... this and issue errors, not warnings.
(build_modify_expr): Call readonly_error, not
readonly_warning.
(c_expand_asm_operands): Likewise.
* tree-inline.c (optimize_inline_calls): Do not inline
functions after errors have occurred.
Philip Blundell [Fri, 12 Mar 2004 19:21:24 +0000 (19:21 +0000)]
re PR target/14558 (ICE while building xfree86 4.3: insn does not satisfy its constraints)
2004-03-12 Philip Blundell <philb@gnu.org>
PR target/14558
Backport from trunk:
2004-02-25 Richard Earnshaw <rearnsha@arm.com>
* arm.h (ARM_GO_IF_LEGITIMATE_INDEX): For QImode the range of
an offset is -4095...+4095 inclusive.
Roger Sayle [Wed, 10 Mar 2004 18:37:26 +0000 (18:37 +0000)]
re PR middle-end/14289 (ICE in a register array)
PR middle-end/14289
* c-typeck.c (c_mark_addressable): A register variable should
be considered global if its not automatic, i.e. TREE_PUBLIC,
TREE_STATIC or DECL_EXTERNAL.
* function.c (put_var_into_stack): Call abort when placing a
hard register into the stack, if x_parm_reg_stack_loc is NULL.
* gcc.dg/pr14289-1.c: New test case.
* gcc.dg/pr14289-2.c: Likewise.
* gcc.dg/pr14289-3.c: Likewise.
re PR target/14471 (Workaround for errata regarding multiplication bug)
PR target/14471
* doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
and -mno-mul-bug-workaround.
* config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
("mulsidi3", "umulsidi3"): Prefix output template with "%!".
("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
* config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
sure mulu.d is not last on cache-line.
* config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
(TARGET_SWITCHES): New options -mmul-bug-workaround and
-mno-mul-bug-workaround.
(TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
(PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
* config/cris/cris.c (cris_operand_extend_operator): Clarify
relation to MULT in head comment.
(cris_op_str): Abort for MULT.
(cris_print_operand) <case '!'>: New case.
Ulrich Weigand [Sat, 6 Mar 2004 19:18:40 +0000 (19:18 +0000)]
s390.c (s390_expand_movstr): Clobber double-word register before initializing high and low parts separately.
* config/s390/s390.c (s390_expand_movstr): Clobber double-word
register before initializing high and low parts separately.
(s390_expand_clrstr): Likewise.
(s390_expand_cmpstr): Likewise.
Ulrich Weigand [Fri, 5 Mar 2004 20:16:49 +0000 (20:16 +0000)]
re PR rtl-optimization/12147 (Wrong code with -O2 in context of reload)
PR optimization/12147
* reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
RELOAD_FOR_OPADDR_ADDR.
(reload_reg_reaches_end_p): A RELOAD_FOR_OTHER_ADDRESS register
might be reused as RELOAD_FOR_OPADDR_ADDR register.
re PR target/1532 (-O3 generates (obviously) redundant tests and jumps)
PR target/1532
Backport from mainline:
2004-02-24 Kazu Hirata <kazu@cs.umass.edu>
* cse.c (cse_change_cc_mode_insns): Stop at any instruction
which modifies NEWREG.
(cse_condition_code_reg): Update the mode of CC_REG in
CC_SRC_INSN on our own.
2004-02-11 Richard Henderson <rth@redhat.com>
* flow.c (insn_dead_p): A clobber of a dead hard register is a
dead insn after reload.
2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
* cse.c (cse_cc_succs): Change the mode of the source expression
as soon as decide we need a new mode. Don't permit changing modes
if we found a match in a successor block.
(cse_condition_code_reg): Save original mode of source expression
so that we know whether we have to change the mode in other
insns.
2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
* cse.c: (cse_cc_succs) Fix comparison warning.
2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
* cse.c: Include "target.h".
(cse_change_cc_mode): New static function.
(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
(cse_condition_code_reg): New function.
(default_cc_modes_compatible): New function.
* rtl.h (cse_condition_code_reg): Declare.
(default_cc_modes_compatible): Declare.
* toplev.c (rest_of_compilation): Call cse_condition_code_reg.
* target.h (struct gcc_target): Add fixed_condition_code_regs and
cc_modes_compatible.
* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(TARGET_INITIALIZER): Add new initializers.
* targhooks.c (default_cc_modes_compatible): Declare.
* hooks.c (hook_bool_intp_intp_false): New function.
* hooks.h (hook_bool_intp_intp_false): Declare.
* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(ix86_fixed_condition_code_regs): New static function.
(ix86_cc_modes_compatible): Likewise.
* doc/gccint.texi: Add copyright 2004.
* doc/tm.texi (Condition Code): Document new hooks.
* Makefile.in (cse.o): Depend upon $(TARGET_H).
re PR middle-end/11767 (different code behaviour with -fnon-call-exceptions -fprofile-arcs)
PR middle-end/11767
* optabs.c (prepare_cmp_insn): Force trapping memories to registers
before the compare, if flag_non_call_exceptions.
* g++.dg/other/profile1.C: New.