Andrew Pinski [Mon, 8 Dec 2003 17:36:59 +0000 (17:36 +0000)]
re PR middle-end/10060 (ICE (stack overflow) on huge file (300k lines) due to recursive behaviour of copy_rtx_if_shared, in emit_rtl.c)
2003-12-08 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/10060
* emit-rtl.c (copy_rtx_if_shared): Split out into ...
(copy_rtx_if_shared_1): here and optimize the last one
in the sequence into tail-recursion.
(reset_used_flags): Optimize the last one
in the sequence into tail-recursion.
Mark Mitchell [Thu, 4 Dec 2003 04:47:17 +0000 (04:47 +0000)]
hpux.h (TARGET_HAVE_TLS): Define it to false.
* config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false.
* config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if
HAVE_AS_TLS is true.
* config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it.
2003-11-29 James E Wilson <wilson@specifixinc.com>
* gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name
instead of in shared_name.
2003-11-20 David Mosberger <davidm@hpl.hp.com>
* config/t-libunwind (LIB2ADDEH): Add unwind-c.c.
(SHLIB_LC): Define.
* unwind-libunwind.c (_Unwind_GetCFA): Implement.
(_Unwind_GetBSP) [UNW_TARGET_IA64]: New function.
Kean Johnston [Wed, 3 Dec 2003 20:10:43 +0000 (20:10 +0000)]
re PR other/12969 (Including sys/byteorder.h breaks configure checks)
2003-12-03 Kean Johnston <jkj@sco.com>
PR 12969
* fixinc/inclhack.def (AAB_svr4_replace_byteorder): Revert the
change I made on 2003-08-11 that removes the mach lines.
Restore them to the same list thats in the head, as per
Nathanael Nerode's changes.
* fixinc/fixincl.x: Regenerated
* fixinc/tests/base/ansi/string.h: Fix test case
Roger Sayle [Tue, 2 Dec 2003 04:36:08 +0000 (04:36 +0000)]
re PR rtl-optimization/11634 ([hppa] ICE in verify_local_live_at_start, at flow.c:555)
PR optimization/11634
* recog.c (split_insn): Factor test of INSN_P and handling of
set_noop_p out of here into the two callers.
(split_all_insns): Add INSN_P test and set_noop_p handling here.
If deleting a no-op set after reload that has a REG_UNUSED note,
mark the basic block as changed and recalculate life information.
(split_all_insns_noflow): Add INSN_P test and set_noop_p handling
here.
Zack Weinberg [Tue, 2 Dec 2003 01:56:18 +0000 (01:56 +0000)]
re PR other/12505 (build failure due to defines of uchar in cpphash.h and sys/types.h)
PR 12505
* configure.in: Check for system-provided 'uchar' type.
* configure, config.in: Regenerate.
* cpphash.h: Only typedef 'uchar' if the system doesn't.
Eric Botcazou [Mon, 1 Dec 2003 08:18:38 +0000 (09:18 +0100)]
backport: re PR rtl-optimization/13041 (linux-2.6/sound/core/oss/rate.c miscompiled)
Backport from mainline:
2003-11-27 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/13041
* final.c (frame_pointer_needed): Fix comment.
* reload1.c (reload): Decrease alignment of the frame
pointer if it was used for register allocation.
Eric Botcazou [Mon, 1 Dec 2003 08:10:18 +0000 (09:10 +0100)]
backport: re PR target/12900 (g++ ICE in rtl_verify_flow_info_1)
Backport from mainline:
2003-11-27 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/12900
* reg-stack (move_for_stack_reg): New prototype. Return
whether a control flow insn was deleted.
(subst_stack_regs_pat): Likewise, using the information provided
by move_for_stack_reg.
(subst_stack_regs): Likewise, using the information provided
by subst_stack_regs_pat.
(convert_regs_1): Record whether a control flow insn was deleted,
using the information provided by subst_stack_regs. Purge dead
edges only if a control flow insn was deleted.
Petur Runolfsson [Wed, 26 Nov 2003 19:54:41 +0000 (19:54 +0000)]
re PR libstdc++/12594 (DRs 60 [TC] and 63 [TC] not implemented)
2003-11-26 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/12594
* include/bits/ostream.tcc
(basic_ostream::operator<<(basic_ostream& (*)(basic_ostream&)),
basic_ostream::operator<<(basic_ios& (*)(basic_ios&)),
basic_ostream::operator<<(ios_base& (*)(ios_base&))):
Implement the resolution of DR 60 (TC): These are not formatted
output functions so don't construct sentry objects and don't
catch exceptions.
(basic_ostream::put, basic_ostream::write): Implement the
resolution of DR 63 (TC) by catching exceptions and setting
badbit.
(basic_ostream::flush): Implement the resolution of DR 60 (TC):
This is not an unformatted output function so don't construct
a sentry object.
Eric Botcazou [Thu, 13 Nov 2003 09:56:51 +0000 (10:56 +0100)]
re PR rtl-optimization/12926 (Wrong value after assignment in initialize list using bit-fields)
PR optimization/12926
* expr.c (expand_assignment) [COMPONENT_REF]: Don't put
the UNCHANGING_RTX_P flag on memory references to read-only
components that are not addressable.
Waldek Hebisch [Mon, 10 Nov 2003 08:17:00 +0000 (09:17 +0100)]
re PR target/12865 (`mprotect' call to make trampoline executable may fail)
PR target/12865
* config/sparc/sparc.c (sparc_initialize_trampoline): Call
__enable_execute_stack only after writing onto the stack.
(sparc64_initialize_trampoline): Likewise.
Roger Sayle [Sat, 8 Nov 2003 15:24:32 +0000 (15:24 +0000)]
backport: re PR target/10467 ([arm] [3.3/3.4 regression] ICE in pre_insert_copy_insn,)
Backport from mainline
PR optimization/10467
PR optimization/11741
* gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
appropriate set to match the code in hash_scan_insn.
* gcc.dg/20030926-1.c: New test case.
* gcc.dg/20031108-1.c: New test case.
* cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS.
* error.c (dump_function_decl): Use it to skip the dump of the
arguments.
(dump_expr): When dumping a declaration found within an
expression, always set TFF_NO_FUNCTION_ARGUMENTS
in the flags.
* Makefile.in (PREPROCESSOR_DEFINES): Add
@TARGET_SYSTEM_ROOT_DEFINE@.
* configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
is specified or if building a cross compiler.
(TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
if the sysroot is under $exec_prefix.
* configure: Regenerated.
* cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
defined.
(struct default_include): Add add_sysroot field.
(cpp_SYSROOT): Declare.
* cppdefault.c (cpp_include_defaults): Fill in add_sysroot
field.
(cpp_SYSROOT): New variable.
* cppinit.c (cpp_create_reader): Initialize
CPP_OPTION (pfile, sysroot).
(init_standard_includes): Handle add_sysroot. Do not
add unrelocated copies of relocated directories.
(COMMAND_LINE_OPTIONS): Add -isysroot.
(cpp_handle_option): Handle -isysroot.
* cpplib.h (struct cpp_options): Add sysroot member.
* gcc.c (The Specs Language): Update description of %I.
(target_system_root_changed): New variable.
(process_command): Conditionalize make_relative_prefix call
on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE. Set
target_system_root_changed.
(do_spec_1): Add -isysroot to %I.
* doc/invoke.texi (Spec Files): Update description of %I.
* doc/install.texi (--with-sysroot): Update comment about
relocation.
2002-10-19 Alexandre Oliva <aoliva@redhat.com>
Angela Marie Thomas <angela@releasedominatrix.com>
Brendan Kehoe <brendan@zen.org>
Nick Clifton <nickc@redhat.com>
Andrew Haley <aph@redhat.com>
* configure.in (--with-sysroot): New. Don't inhibit libc if
given. AC_SUBST TARGET_SYSTEM_ROOT, TARGET_SYSTEM_ROOT_DEFINE
and CROSS_SYSTEM_HEADER_DIR.
* configure: Rebuilt.
* Makefile.in (CROSS_SYSTEM_HEADER_DIR): Set in configure.
(TARGET_SYSTEM_ROOT): New.
(DRIVER_DEFINES): Define CROSS_INCLUDE_DIR from
CROSS_SYSTEM_HEADER_DIR.
(install-gcc-tooldir): New target.
(stmp-fixinc): Do not create $(libsubdir), but rather bail out
of SYSTEM_HEADER_DIR does not exist.
(deduced.h, stmp-fixproto): Quote SYSTEM_HEADER_DIR properly.
(install-mkheaders): Likewise.
* gcc.c (target_system_root): New variable.
(add_sysrooted_prefix): New function.
(process_command): Recompute run-time target_system_root from
gcc_exec_prefix, keeping it unchanged if the relocated sysroot
does not exist.
(do_spec_1): Process 'R' spec.
(main): Add md_exec_prefix to exec_prefixes regardless of
startfile_prefix_spec. Use add_sysrooted_prefix for
startfile_prefixes, and don't skip the default ones when cross
compiling with sysroot enabled. Removed unused case of
non-absolute standard_startfile_prefix.
* config/interix.h: Remove the only potential, yet disabled,
occurrence of non-absolute (empty) standard_startfile_prefix.
* config/sh/linux.h (LIB_SPEC): Add -rpath-link in non-static
linking.
* config/mips/linux.h (LIB_SPEC): Define as in sh/linux.h.
* doc/install.texi (--with-sysroot): Document.
(--with-headers, --with-libs): Deprecate.
Ulrich Weigand [Thu, 6 Nov 2003 21:45:27 +0000 (21:45 +0000)]
s390.c (s390_function_arg_pass_by_reference): Return true for all arguments larger than 8 bytes...
* config/s390/s390.c (s390_function_arg_pass_by_reference): Return
true for all arguments larger than 8 bytes, as well as for all vector
type arguments.
* config/s390/s390.h (RETURN_IN_MEMORY): Likewise for return values.
Roger Sayle [Thu, 6 Nov 2003 04:47:33 +0000 (04:47 +0000)]
backport: re PR rtl-optimization/10339 ([sparc,ppc,ppc64] Invalid optimization: replacing strncmp by memcmp)
Backport from mainline
PR optimization/10339
* builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
directly instead of unsafely transforming call into a memcmp.
(expand_builtin_strncmp): Likewise.
H.J. Lu [Tue, 4 Nov 2003 17:00:44 +0000 (17:00 +0000)]
backport: [multiple changes]
2003-11-04 H.J. Lu <hongjiu.lu@intel.com>
Backport from 3.4-branch
2003-04-25 H.J. Lu <hjl@gnu.org>
* config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
for return mode.
(ia64_expand_builtin): Set rmode to SImode for
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
2003-04-24 H.J. Lu <hjl@gnu.org>
* config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
for __sync_bool_compare_and_swap_di for int return type.
* config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
Change return type to int.
(__sync_bool_compare_and_swap): Likewise.