Ian Lance Taylor [Wed, 31 Dec 1997 11:48:25 +0000 (11:48 +0000)]
configure.in: Set and subsitute host_exeext.
* configure.in: Set and subsitute host_exeext. Use it when creating
the assembler and linker symlinks.
* configure: Rebuild.
* Makefile.in (exeext): Set to @host_exeext@.
(build_exeext): New variable, set to @build_exeext@.
(FLAGS_TO_PASS): Pass down build_exeext.
(STAGESTUFF): Use build_exeext, not exeext, for gen* and bi*
programs.
sparc.h (ASM_OUTPUT_MI_THUNK): Move %o7 through %g1 instead of save+restore.
* sparc.h (ASM_OUTPUT_MI_THUNK): Move %o7 through %g1 instead of
save+restore. Fix pic+big_offset delay slot. Use "pic" case for
unix always, since we want to be able to thunk to functions in a
shared library from an application.
Teemu Torma [Wed, 24 Dec 1997 23:56:08 +0000 (23:56 +0000)]
Makefile.in (GTHREAD_FLAGS): New var.
* Makefile.in (GTHREAD_FLAGS): New var.
(LIBGCC2_CFLAGS): Added $(GTHREAD_FLAGS).
(distclean): Remove gthr-default.h.
* configure.in: Accept dce as a thread package.
Check for thread.h and pthread.h.
Link gthr-default.h to appropriate thread file and set
gthread_flags.
(hppa1.1-*-hpux10*): If --enable-threads, use dce threads and
include multilib definitions from pa/t-dce-thr.
(sparc-*-solaris2*): Enable threads by default, if thread.h or
pthread.h is found, preferring posix threads over solaris ones.
* config/pa/t-dce-thr: New file.
* config/pa/t-pa: Removed multilibs.
* config/sparc/t-sol2: Ditto.
* gthr.h: New file.
* gthr-single.h: New file.
* gthr-posix.h: New file.
* gthr-solaris.h: New file.
* gthr-dce.h: New file.
* libgcc-thr.h: Removed.
* objc/thr-dce.c: New file copied from thr-decosf1.c.
* frame.c: Include gthr.h instead of libgcc-thr.h.
* libgcc2.c: Include gthr.h instead of libgcc-thr.h.
(eh_context_initialize): If __gthread_once fails, use static eh
context.
(eh_context_free): Call __gthread_key_dtor.
Jim Wilson [Wed, 24 Dec 1997 22:10:46 +0000 (22:10 +0000)]
abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT, and define __LONG_MAX__ appropriately.
* abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT,
and define __LONG_MAX__ appropriately. Add support for -mabi=X,
-mlong64, and -mgp{32,64} options.
* mips.c (mips_abi): Change type to int.
* mips.h (enum mips_abi_type): Delete.
(ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants.
(mips_abi): Change type to int.
John Carr [Wed, 24 Dec 1997 21:44:46 +0000 (14:44 -0700)]
flags.h, [...]: Remove flag_alias_check; optimization is now always enabled.
* flags.h, toplev.c, calls.c, alias.c: Remove flag_alias_check;
optimization is now always enabled.
* calls.c (expand_call): Recognize C++ operator new as malloc-like
function.
* alias.c (memrefs_conflict_p): Eliminate tests now done by
base_alias_check.
(*_dependence): Call canon_rtx before base_alias_check.
(init_alias_once): New function to precompute set of registers which
can hold Pmode function arguments.
* rtl.h: Declare init_alias_once.
* toplev.c (compile_file): Call init_alias_once.
John Carr [Wed, 24 Dec 1997 21:39:44 +0000 (14:39 -0700)]
flags.h, [...]: Remove flag_alias_check; optimization is now always enabled.
* flags.h, toplev.c, calls.c, alias.c: Remove flag_alias_check;
optimization is now always enabled.
* calls.c (expand_call): Recognize C++ operator new as malloc-like
function.
* alias.c (memrefs_conflict_p): Eliminate tests now done by
base_alias_check.
(*_dependence): Call canon_rtx before base_alias_check.
(init_alias_once): New function to precompute set of registers which
can hold Pmode function arguments.
* rtl.h: Declare init_alias_once.
* toplev.c (compile_file): Call init_alias_once.
Paul Eggert [Tue, 23 Dec 1997 11:55:03 +0000 (11:55 +0000)]
genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT in addition to RLIMIT_STACK.
* genattrtab.c (main): Check HAVE_{G,S}ETRLIMIT in addition to
RLIMIT_STACK. This maintains consistency with the recent, similar
patch to cccp.c and toplev.c.
genattrtab.c (expand_units): For large nr opclasses, expand function_units_used with ORX to prevent blowups.
* genattrtab.c (expand_units): For large nr opclasses, expand
function_units_used with ORX to prevent blowups. Tag with FFS.
(num_unit_opclasses): New variable.
(gen_unit): Update it.
(enum operator): Add ORX_OP.
(operate_exp): Treat ORX as or, except don't expand across an if.
Reuse number rtx's after operating on them.
(check_attr_value): Accept IOR, AND, & FFS.
(write_test_expr): Transmute `in_comparison' to `flags'. Allow
for attribute value caching. Handle CONST_STRING, IF_THEN_ELSE.
(write_expr_attr_cache, write_toplevel_expr): New functions.
(write_attr_get): Handle FFS-tagged expressions.
(make_canonical): Don't expand const attributes.
(convert_const_symbol_ref): Dike out.
(evaluate_eq_attr): Handle SYMBOL_REF.
(main): Don't emit get_attr_foo for const attributes.
* alpha.c (override_options): Reinstate PROCESSOR_EV6.
(alpha_adjust_cost): Add EV6 tuning; streamline EV5 tests.
* alpha.h (REGISTER_MOVE_COST): Increase ftoi/itof cost slightly.
* alpha.md: Redo all of the scheduling, adding EV6 support, and
combining function units where possible.
(attr "type"): Split loads, stores, cmov into int/fp. Combine
multiplies and divides. Add EV6 sqrt, ftoi, itof.
(attr "opsize"): New attribute.
(sqrtsf2-1, sqrtdf2-1): Provide proper TP_INSN patterns.
(movsf2-[12], movdf2-[12]): Provide CIX varients; don't allow CIX
to control register allocation.
(movsi2-1, movdi2-1): Likewise.
alpha.h (CPP_PREDEFINES, [...]): Move OSF/1 specific defines out.
* alpha.h (CPP_PREDEFINES, LIB_SPEC, LINK_SPEC, STARTFILE_SPEC,
MD_STARTFILE_PREFIX, ASM_FILE_START, ASM_SPEC, ASM_FINAL_SPEC):
Move OSF/1 specific defines out.
* alpha/elf.h (TARGET_VERSION, CPP_PREDEFINES, DEFAULT_VTABLE_THUNKS):
Move Linux specific defines out.
(LINK_SPEC): Genericize.
(ASM_FILE_START): Emit .arch if using more than the base insn set.
(ASM_OUTPUT_SOURCE_LINE): Remove; identical to alpha.h version.
(SDB_DEBUGGING_INFO): Remove; gas can't handle it.
(HANDLE_SYSV_PRAGMA): Define.
* alpha/osf.h: New file.
* alpha/linux.h: Split. Retain file-format independant defines.
Import Linux bits from elf.h.
(CPP_PREDEFINES): Take a file-format specific SUB_CPP_PREDEFINES
(FUNCTION_PROFILER): _mcount takes its address in $28.
(MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Remove undef.
* alpha/linux-ecoff.h: New file.
* alpha/linux-elf.h: New file.
* alpha/vms.h (LIB_SPEC, LINK_SPEC): Copy from osf.h.
* alpha/win-nt.h (TARGET_DEFAULT): Define.
* configure.in (alpha*-*-osf*, alpha*-*-linux*) [tm_file]:
Add new headers as appropriate.
* configure.in (alpha*): Enable Haifa by default.
(*-*-winnt3*): Change to winnt*, since we're not v3 specific.
* configure: Rebuild.
Jeff Law [Mon, 22 Dec 1997 08:55:49 +0000 (01:55 -0700)]
haifa-sched.c (create_reg_dead_note): Detect and handle another case where we kill more regs after sched than were...
* haifa-sched.c (create_reg_dead_note): Detect and handle another
case where we kill more regs after sched than were killed before
sched.
* sched.c (create_reg_dead_note): Similarly.
Jeff Law [Mon, 22 Dec 1997 08:55:43 +0000 (01:55 -0700)]
haifa-sched.c (create_reg_dead_note): Detect and handle another case where we kill more regs after sched than were...
* haifa-sched.c (create_reg_dead_note): Detect and handle another
case where we kill more regs after sched than were killed before
sched.
* sched.c (create_reg_dead_note): Similarly.
Mumit Khan [Sun, 21 Dec 1997 21:07:08 +0000 (21:07 +0000)]
cygwin32.h (NO_IMPLICIT_EXTERN_C): Don't assume anything about system headers.
* i386/cygwin32.h (NO_IMPLICIT_EXTERN_C): Don't assume anything
about system headers.
(LIB_SPEC): Add -ladvapi32 -lshell32 to be consistent with mingw32
and also to resolve symbols in prefix.c.
* i386/xm-cygwin32.h (HAVE_BCOPY): Define. This avoids a conflict
between gansidecl.h and newlib's _ansi.h when building libgcc2.a,
when the definitions in auto-config.h is not visible.
(HAVE_BZERO): Likewise.
(HAVE_BCMP): Likewise.
(HAVE_RINDEX): Likewise.
(HAVE_INDEX): Likewise.
Nick Clifton [Sun, 21 Dec 1997 15:24:48 +0000 (08:24 -0700)]
c-pragma.c (handle_pragma_token): Generate warning messages about unknown pragmas if warn_unknown_pragmas is set.
* c-pragma.c (handle_pragma_token): Generate warning messages
about unknown pragmas if warn_unknown_pragmas is set.
* c-decl.c (c_decode_option): Parse -Wunknown-pragmas command
line option to set variable: warn_unknown_pragmas.
Jeff Law [Sun, 21 Dec 1997 13:45:26 +0000 (06:45 -0700)]
Makefile.in (FPBIT_FUNCS, [...]): Define.
L
* Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Define.
(libgcc2.a): Depend on $(DPBIT) and $(FPBIT). Add rules to
generate more fine grained floating point emulation libraries.
* config/fp-bit.c: Add protecting #ifdef to all functions so
that they can be compiled separately. If !FINE_GRAINED_LIBRARIES,
then compile all suitable functions.
(pack_d, unpack_d, fpcmp_parts): Add declarations, define with two
underscores to avoid namespace pollution.
* t-mn10200 (LIB2FUNCS_EXTRA): Remove fp-bit.c
(FPBIT): Define.
* t-mn10300 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
(FPBIT): Define.
(DPBIT): Define.
Jeff Law [Sun, 21 Dec 1997 13:45:24 +0000 (06:45 -0700)]
Makefile.in (FPBIT_FUNCS, [...]): Define.
e
* Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Define.
(libgcc2.a): Depend on $(DPBIT) and $(FPBIT). Add rules to
generate more fine grained floating point emulation libraries.
* config/fp-bit.c: Add protecting #ifdef to all functions so
that they can be compiled separately. If !FINE_GRAINED_LIBRARIES,
then compile all suitable functions.
(pack_d, unpack_d, fpcmp_parts): Add declarations, define with two
underscores to avoid namespace pollution.
* t-mn10200 (LIB2FUNCS_EXTRA): Remove fp-bit.c
(FPBIT): Define.
* t-mn10300 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
(FPBIT): Define.
(DPBIT): Define.
Jeffrey A Law [Sun, 21 Dec 1997 13:45:20 +0000 (13:45 +0000)]
Makefile.in (FPBIT_FUNCS, [...]): Define.
* Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Define.
(libgcc2.a): Depend on $(DPBIT) and $(FPBIT). Add rules to
generate more fine grained floating point emulation libraries.
* config/fp-bit.c: Add protecting #ifdef to all functions so
that they can be compiled separately. If !FINE_GRAINED_LIBRARIES,
then compile all suitable functions.
(pack_d, unpack_d, fpcmp_parts): Add declarations, define with two
underscores to avoid namespace pollution.
* t-mn10200 (LIB2FUNCS_EXTRA): Remove fp-bit.c
(FPBIT): Define.
* t-mn10300 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
(FPBIT): Define.
(DPBIT): Define.
Andreas Schwab [Thu, 18 Dec 1997 23:27:58 +0000 (23:27 +0000)]
Make-lang.in: Create runtime-info.h and libobjc_entry.o in the build directory.
* objc/Make-lang.in: Create runtime-info.h and libobjc_entry.o in
the build directory.
(libobjc.a): Update dependency list.
(libobjc.dll): Likewise. Use libobjc_entry.o from the build
directory.
(objc/sendmsg.o): Add -Iobjc to find runtime-info.h.
(objc.mostlyclean): Remove runtime-info.h.
Jeff Law [Thu, 18 Dec 1997 22:42:41 +0000 (15:42 -0700)]
integrate.c (get_label_from_map): New function.
* integrate.c (get_label_from_map): New function.
(expand_inline_function): Use it. Initialize the label_map to
NULL_RTX instead of gen_label_rtx.
(copy_rtx_and_substitute): Use get_label_from_map.
* integrate.h (get_label_from_map): New function.
(set_label_from_map): New macro.
* unroll.c (unroll_loop): Use them.
(copy_loop_body): Ditto.
Benjamin Kosnik [Thu, 18 Dec 1997 13:03:54 +0000 (13:03 +0000)]
c++: Don't inject friends while processing templates
* pt.c (instantiate_class_template): Don't do injection when
processing_template_decl is true, as pollutes current_binding_level
for base classes.
PR g++/13911/14438
fixincludes (size_t): Add support for Motorola's stdlib.h which fails to provide a definition for size_t.
* fixincludes (size_t): Add support for Motorola's stdlib.h
which fails to provide a definition for size_t.
(fabs/hypot): Provide a prototype for fabs on m88k-motorola-sysv3.
(strlen,strspn,strcspn return value): Handle different layout on sysV88.
(hypot): Provide a fake for hypot for m88k-motorola-sysv3.
Fixes from Manfred.
Jeff Law [Tue, 16 Dec 1997 22:45:45 +0000 (15:45 -0700)]
profile1.C (XFAIL): Expect it to fail on m68k-motorola-sysv and m88k-motorola-sysv3.
* g++.old-deja/g++.law/profile1.C (XFAIL): Expect it to fail on
m68k-motorola-sysv and m88k-motorola-sysv3.
* gcc.c-torture/execute/loop-2e.cexp: New file to indicate expected
compile failures on m68k-motorola-sysv and m88k-motorola-sysv3.
* gcc.c-torture/execute/loop-2f.cexp: Likewise.
* reload.h, reload1.c (eliminate_regs), caller-save.c, dbxout.c,
dwarfout.c, dwarf2out.c, reload.c, sdbout.c: Revert March 15 change.
* reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the
SUBREG_REG if the word count is unchanged.
* reload1.c (eliminate_regs) [case SET]: If W_R_O, preserve
subregs of identical word size for push_reload.