Roger Sayle [Sun, 2 Nov 2003 13:56:42 +0000 (13:56 +0000)]
re PR rtl-optimization/10817 (gcc does not optimize result=0;if(t!=0)result=t; to result=t;)
PR optimization/10817
* ifcvt.c (noce_emit_move_insn): Improve documentation comment.
(noce_try_move): New function to optimize an if-the-else into an
unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a".
(noce_process_if_block): Attempt simplification with noce_try_move.
* simplify-rtx.c (simplify_ternary_operation): Some minor fixes
and improvements to the optimizations of IF_THEN_ELSE expressions.
(simplify_subreg): Silence signed/unsigned comparison warning.
* gcc.c-torture/compile/20031102-1.c: New test case.
* Makefile.in (targhooks.o, reload.o): Update dependencies.
(GTFILES): Add targhooks.c.
(gt-targhooks.h): New rule; depend on s-gtype.
* target.h (direct_pool_load_p): New hook.
* target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
(TARGET_INITIALIZER): Include it.
* targhooks.h (default_direct_pool_load_p): Declare.
(hook_bool_machine_mode_true): Declare.
* targhooks.c: Include insn-config.h, recog.h, ggc.h and
gt-targhooks.h.
(pool_symbol): New variable.
(default_direct_pool_load_p): New function.
(hook_bool_machine_mode_true): New function.
* reload.c: Include target.h.
(find_reloads): If an alternative will force a constant into memory,
count an extra reload if constant pool symbols are not valid
addresses. If an alternative uses memory to move values between
registers, count the move as two reloads rather than one.
* config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
* doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
Eric Botcazou [Sun, 2 Nov 2003 08:27:23 +0000 (09:27 +0100)]
sparc.c (function_arg_partial_nregs): Return 0 for all complex modes whose size is lesser or equal to a word.
* config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]:
Return 0 for all complex modes whose size is lesser or equal to
a word. Add a ??? comment for the condition used with 16-byte
aligned modes.
* unwind-dw2-fde-darwin.c: Adjust prototype of
_Unwind_Find_registered_FDE for recent changes.
(examine_objects): Constify return value and local variable result.
(_Unwind_Find_FDE): Constify return value and local variable ret.
* vax.c: Include toplev.h.
(vax_init_libfuncs): Fix typo (umod).
* vax.h (ASM_COMMENT_START): Define.
(PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long.
2003-10-31 Fariborz Jahanian <fjahanian@apple.com>
David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_mixed_function_arg): New.
(function_arg): Call it.
(rs6000_function_value): Widen integral return value to mode based
on TARGET_32BIT, not word_mode.
* config/rs6000/rs6000.h (PROMOTE_MODE): Likewise.
Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
From-SVN: r73151
Richard Earnshaw [Fri, 31 Oct 2003 15:14:19 +0000 (15:14 +0000)]
Add PR to:
PR optimization/8896
* postreload.c (reload_combine): Check that REGY doesn't die in an
insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY.
Richard Earnshaw [Fri, 31 Oct 2003 10:49:15 +0000 (10:49 +0000)]
bprob.exp: Disable test on arm-elf configs.
* g77.dg/bprob/bprob.exp: Disable test on arm-elf configs.
* gcc.misc-tests/bprob.exp: Likewise.
* g77.dg/execute/20001201.x, 6367.x, io0.x, io1.x, u77-test.x: XFAIL
the execution test on arm-elf configs.
* g77.dg/execute/10197.x: New file. XFAIL the execution test on
configs that don't support scratch files.
* g77.dg/execute/u77-test.x: XFAIL compilation on arm-elf configs.
Nathanael Nerode [Fri, 31 Oct 2003 09:53:53 +0000 (09:53 +0000)]
re PR ada/12761 ([3.3 only] Segmentation fault in gnat1 compiling a-except.adb)
(gcc)
PR ada/12761
* Makefile.in: Move default definitions of X_ADA_CFLAGS,
T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here.
(gcc/ada)
PR ada/12761
* ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
Mohan Embar [Fri, 31 Oct 2003 03:31:54 +0000 (03:31 +0000)]
win32.cc: (dirExists) Internal helper function to test for directory existence.
* win32.cc: (dirExists) Internal helper function to
test for directory existence.
(getUserHome) New helper function refactored out
of _Jv_platform_initProperties. Uses USERPROFILE
instead of HOMEDIR and attempts to support Win9X and NT.
(_Jv_platform_initProperties) Use getUserHome.
Ulrich Weigand [Thu, 30 Oct 2003 14:11:34 +0000 (14:11 +0000)]
s390.c (struct machine_function): Use save_return_addr_p as a general flag that the return address register needs...
* config/s390/s390.c (struct machine_function): Use save_return_addr_p
as a general flag that the return address register needs to be saved,
not necessarily because of __builtin_return_addr (0).
(s390_split_branches): Remove TEMP_REG and TEMP_USED arguments,
remove special handling of zSeries machines.
(s390_optimize_prolog): Remove TEMP_USED argument, treat the return
register as a regular register on zSeries machines.
(s390_reorg): Adjust calls to s390_split_branches and
s390_optimize_prolog.
(s390_frame_info): On zSeries machines, do not assume the return
register is always used. Update regs_ever_live with current data
for the special registers.
(s390_emit_epilogue): Use save_return_addr_p to determine whether
the return register was saved.
* config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark
RETURN_REGNUM fixed on zSeries machines.
(REG_ALLOC_ORDER): Use RETURN_REGNUM last.
* config/s390/s390.md ("*doloop_si"): Handle branch overflow
via ahi-jgne pair on zSeries machines.
("*doloop_di"): Likewise.
("*doloop_di_long"): Remove.
* lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
* par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
New handling of Id_Check parameter to improve recognition of keywords
used as identifiers.
Update copyright notice to include 2003
James E Wilson [Thu, 30 Oct 2003 01:40:48 +0000 (01:40 +0000)]
Fix problem noticed by Dale Johannesen on the gcc list.
* recog.c (asm_operand_ok): Add missing break after case 'X'.
Change if statements to else if statements in default case.
(extract_constrain_insn_cached): Fix misspelling of constrain_operands
in comment.
(constrain_operands_cached): Likewise.
(constrain_operands): Change if statements to else if statements in
default case.
* reload.c (find_reloads): Likewise.
configure.in: Look for <valgrind/memcheck.h> first.
* configure.in <enable-checking for valgrind>: Look for
<valgrind/memcheck.h> first. AC_DEFINE HAVE_VALGRIND_MEMCHECK_H
if it exists.
* configure, config.in: Regenerate.
* ggc-common.c [ENABLE_VALGRIND_CHECKING &&
HAVE_VALGRIND_MEMCHECK_H]: Include <valgrind/memcheck.h>. Use
#elif for other alternatives.
* ggc-page.c: Ditto.
* ggc-zone.c: Don't assume <valgrind/memcheck.h>; instead copy
include structure from ggc-common.c.
pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
* pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs.
(ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs.
* pa.c (pa_adjust_insn_length): Check for btable branches using
attribute TYPE_BTABLE_BRANCH.
(pa_reorg): Simplify.
* pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode.
(ASM_OUTPUT_ADDR_VEC_ELT): As above.
(ASM_OUTPUT_ADDR_DIFF_ELT): As above.
* pa.md (btable_branch): New instruction type.
(in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow
btable branches.
(define_delay): Add btable branches to insn types that may have an
insn in the delay position.
(Z2, Z3): Add btable branch to list.
Simplify unamed pattern set copy pic_label_operand to register. Add
PA 2.0 variant.
(short_jump): New jump for use in branch tables.
(casesi, casesi0): Revise for new branch table formats.
(casesi32, casesi32p, casesi64p): New casesi patterns.
(indirect_jump): Move.